老师,有个问题一直想不通,删除倒数第n个节点的问题。
来源:5-6 链表与双指针 Remove Nth Node Form End of List
幕布斯2628834
2022-02-17
老师,有个问题一直想不通,删除倒数第n个节点的问题。为什么dummyHead->next就是答案?代码操作的不是p和q两个ListNode吗?为什么就影响了dummyHead?
写回答
1回答
-
liuyubobobo
2022-02-18
我不确定我是不是理解了你的问题。
简单来说,这个问题(包括链表的所有问题),都是在对链表进行了操作以后,返回链表的头结点。你对链表的操作不一定发生在头结点。比如这个问题,哪怕让你删除链表的最后一个节点,在删除以后,根据题意,也要返回链表的头结点。因为通过链表的头结点,我们就能遍历整个链表,就能看到整个链表是什么样子的。
其中的 103 和 105 行。如果单纯看这两行中 head 这个节点本身,是没有变化的。但是 103 和 105 行遍历了整个链表,打印出整个链表序列,就是有区别的了。
==========
如果你的问题是,为什么对 p 或者 q 操作之后,103 和 105 行的打印结果是有区别的,那你的问题就更基础一些。对此,我的建议是,先不要刷题(除非你的时间特别紧),去找专门的数据结构的教材,把链表相关的所有操作的逻辑(增删改查)都理清楚,搞明白这些基础操作都是为什么成立的。
如果愿意可以参考我的这个课程:https://class.imooc.com/sale/datastructure (注意,这个课程是使用 Java 讲解的。)当然不学习这个课程也没有问题,基本上任何基础的数据结构教程都一定会详细介绍链表的。
继续加油!:)
00
相似问题