题目

给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。

假设链表一定存在,并且该节点一定不是尾节点。

  • 数据范围
  • 链表长度 [1,500]。

示例

  • 示例1
  • 输入:链表 1->4->6->8
  • 删掉节点:第2个节点即6(头节点为第0个节点)
  • 输出:新链表 1->4->8

代码

解法:复制结点

class Solution {
public:
    void deleteNode(ListNode* node) {
        ListNode *next = node->next;
        *node = *next;
        delete next;
    }
};

代码分析:1、先解释一下,deleteNode(ListNode* node)里传的参数就是要删除的结点
2、复制下一个结点到本结点,释放下一个结点。

题目在O(1)时间删除链表结点

最后修改:2022 年 01 月 11 日 02 : 16 PM
如果我的文章对你有用,请随意赞赏