删除链表中的元素,head = next.head和cur = cur.next?

来源:5-1 Leetcode中和链表相关的问题

FightForChoices

2020-06-02

老师您好,我想问5-1中为什么删除链表中的元素,head = next.head和prev.next = prev.next.next是可行的,而在第四章中,cur = cur.next 是错误的。

非常感谢!

写回答

2回答

qq_慕斯卡8413483

2020-12-03

因为在力扣203这个问题里提供的链表不是之前4-5的提供LinkedList
类而是只给了一个头结点,从此节点开始遍历到null的结尾加起来就是一个完整的链表.如:1->2->3.

相对应的,我们最后返回的也是一个头结点代表整个链表,把head的指向进行挪动就等于是对head之前的元素进行了删除,因为无法从head节点倒着获取到之前节点的信息.所以此处head = next.head和prev.next = prev.next.next是可行的.这样返回的链表会是2->3

4-5是返回了一个包装好的整体链表而不是头结点,所以挪动cur的指向是无用的

0
0

liuyubobobo

2020-06-02

抱歉,我没有完全理解你的问题。你需要给我更完整的代码片段:第四章中哪里写成 cur = cur.next 是错误的?或者根据第四章的学习,你认为第五章那里应该怎么写是正确的?但结果却是错误的?

0
0

玩转数据结构

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

6221 学习 · 1704 问题

查看课程