剑指offer.在O(1)时间内删除链表节点

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Wilder_ting/article/details/88938882

剑指offer.在O(1)时间内删除链表节点

给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。假设链表一定存在,并且该节点一定不是尾节点。

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

输出:新链表 1->4->8
 
想法:因为不知道待删除节点的前驱节点,因为无法像常规那样让待删除的链表节点的前驱指向待删除链表节点的后驱节点这种方式
。可以采用让待删除结点下一节点覆盖当前待删除节点。然后删除下一节点
class Solution {
public:
    void deleteNode(ListNode* node) {
        node->val = node->next->val;
        node->next  = node->next->next;
    }
};
posted @ 2019-03-31 15:30 Tingwei_chen 阅读( ...) 评论( ...) 编辑 收藏

猜你喜欢

转载自blog.csdn.net/Wilder_ting/article/details/88938882
今日推荐