美文网首页LeetCode题解
LeetCode 237. 删除链表中的节点

LeetCode 237. 删除链表中的节点

作者: 云胡同学 | 来源:发表于2018-08-21 10:30 被阅读0次

    题目描述

    请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。

    输入: head = [4,5,1,9], node = 5
    输出: [4,1,9]
    解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
    

    思路

    给我们的只有待删除的节点,不能遍历。

    比如 1->3->5->7->9 node 为 5

    1. 首先将 node 这个节点的下一个节点的值赋到当前节点。
      那么链表就变为 1->3->7->7->9

    2. 将 node 这个节点的 next 指针指向 next 的 next 也就是 9,链表变为1->3->7->9 ,那么就实现删除节点。

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

    相关文章

      网友评论

        本文标题:LeetCode 237. 删除链表中的节点

        本文链接:https://www.haomeiwen.com/subject/mmsdiftx.html