波波老師,请教leetcode 203. 移除链表元素

来源:4-5 从链表中删除元素

qq_山上山_0

2019-05-09

C# 代码实现,为什么返回的时候必须是dummyHead.next;
返回head不行???
dummyHead.next指向的不也是head吗?所以删除节点后,应该返回head也可以啊?

  public ListNode RemoveElements(ListNode head, int val)
        {
            if (head == null)
                return null;
            ListNode dummyHead = new ListNode(-1);
            dummyHead.next = head;
            ListNode cur = dummyHead;
            while (cur.next != null)
            {
                if (cur.next.val == val)
                    cur.next = cur.next.next;
                else
                    cur = cur.next;
            }
            return dummyHead.next;
        }
写回答

1回答

liuyubobobo

2019-05-09

删除过程,你有可能删除的就是head所指的节点。如果你删除的就是head所指的节点,dummyHead.next和head不一样。此时,dummyHead.next连接的是原来head的next:)


继续加油!:)

0
3
qq_山上山_0
回复
liuyubobobo
大概有点明白了;那这个时候我用head=null回收应该可以;因为head一直是在那里的,他的next没有变;
2019-05-10
共3条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程