小工具知识网

当前位置: 首页 > 行业知识 > LeetCode19题:删除链表的倒数第N个结点(python3)

行业知识

LeetCode19题:删除链表的倒数第N个结点(python3)

2026-11-10 19:41:09 来源:互联网转载

代���思路:

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

1.设置虚拟节点 dummyHead 指向 head

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

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

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

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

# Definition for singly-linked list.# class ListNode:#     def __init__(self, val=0, next=None):#         self.val = val#         self.next = nextclass Solution:    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:        fast = slow = dummy_head = ListNode(next=head)        while n:            fast = fast.next            n -= 1        while fast.next:            fast = fast.next            slow = slow.next        slow.next = slow.next.next        return dummy_head.next

上一篇:商城网站怎么推广?

下一篇:服务器怎么用本地文件?