#19. 删除链表的倒数第 N 个结点

Posted 王爷爱吃秋刀鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#19. 删除链表的倒数第 N 个结点相关的知识,希望对你有一定的参考价值。

题目:

 

 

思路:一道经典的快慢指针问题,快指针先走n步,然后一起走,快指针走到最后一个节点,慢指针就到了要被删除的节点的前一个节点。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        node = ListNode(0)
        node.next = head #定义头节点
        fast = node
        slow = node
        for i in range(n):
            fast = fast.next #快节点先走n步
        while(fast.next!=None):#直到快节点走到最后一个,慢节点直接指向她的后继节点的后继节点
            fast = fast.next
            slow = slow.next
        slow.next = slow.next.next
        return node.next

 

以上是关于#19. 删除链表的倒数第 N 个结点的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点

算法leetcode|19. 删除链表的倒数第 N 个结点(rust重拳出击)

算法leetcode|19. 删除链表的倒数第 N 个结点(rust重拳出击)

19. 删除链表的倒数第 N 个结点

LeetCode 19. 删除链表的倒数第N个节点