当前位置:   article > 正文

删除链表的倒数第n个节点 python_19. 删除链表的倒数第N个节点——Python版

p2.next = p; p2 = p2.next;

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.

当删除了倒数第二个节点后,链表变为 1->2->3->5.

思路:

可以设想假设设定了双指针 p 和 q 的话,当 q 指向末尾的 NULL,p 与 q 之间相隔的元素个数为 n 时,那么删除掉 p 的下一个指针就完成了要求。

设置虚拟节点 dummyHead 指向 head

设定双指针 p 和 q,初始都指向虚拟节点 dummyHead

移动 q,直到 p 与 q 之间相隔的元素个数为 n

同时移动 p 与 q,直到 q 指向的为 NULL

将 p 的下一个节点指向下下个节点

动画演示:

a562ffd5739414cc34f115d258e7495f.gif

class Solution:

def removeNthFromEnd(self, head: 'ListNode',n):

dummy = ListNode(0)

dummy.next=head

p1=p2=dummy

while n:

p1=p1.next

n -=1

while p1.next:

p1=p1.next

p2=p2.next

p2.next= p2.next.next

return dummy.next

参考资料:https://github.com/MisterBooo/LeetCodeAnimation/blob/master/0019-Remove-Nth-Node-From-End-of-List/Article/0019-Remove-Nth-Node-From-End-of-List.md

原文链接:https://blog.csdn.net/JulyLi2019/article/details/106086957

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/990692
推荐阅读
相关标签
  

闽ICP备14008679号