美文网首页数据结构
237. 删除链表中的节点

237. 删除链表中的节点

作者: 名字是乱打的 | 来源:发表于2021-12-28 21:02 被阅读0次

    一 题目:

    二 思路:

    • 正常来说如果是双链表我们应该是要让当前结点的前一个结点指向当前结点的下一个结点来做到删除该结点的,如果是单链表应该从前面遍历找到要删除的结点;
    • 但是这题只给我们直接访问的当前结点,那可以想到以此把下一个结点的值覆盖当前结点,不改变next指针指向,如果当前结点是最后一个值了,就把当前结点给删除了(这以上我们代码里保留一个pre结点的原因)

    三 代码:

    class Solution {
        public void deleteNode(ListNode node) {
            ListNode temp=node;
            ListNode pre=null;
            while (temp.next!=null){
                pre=temp;
                temp.val=temp.next.val;
                temp=temp.next;
            }
    
            if (pre!=null){
                pre.next=null;
            }
    
        }
    }
    

    相关文章

      网友评论

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

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