小工具知识网

当前位置: 首页 > 行业知识 > 力扣hot100题解(python版29-32题)

行业知识

力扣hot100题解(python版29-32题)

2026-11-02 05:41:31 来源:互联网转载

29、删除链表的倒数第N个结点

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

示例 1:

输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1输出:[]

示例 3:

输入:head = [1,2], n = 1输出:[1]

思路解答:

  1. 使用两个指针 fast 和 slow,初始时都指向头节点。
  2. 让 fast 先向前移动 n+1 步,这样 fast 和 slow 之间相隔 n 个节点。
  3. 接着同时移动 fast 和 slow,直到 fast 到达链表末尾,此时 slow 就指向要删除节点的前一个节点。
  4. 修改指针,将 slow.next 指向 slow.next.next,即删除倒数第 n 个节点。
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:    dummy = ListNode(0)    dummy.next = head    fast = dummy    slow = dummy    # 让 fast 先向前移动 n+1 步    for _ in range(n + 1):        fast = fast.next    # 同时移动 fast 和 slow    while fast is not None:        fast = fast.next        slow = slow.next    # 删除倒数第 n 个节点    slow.next = slow.next.next    return dummy.next

30、两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

输入:head = [1,2,3,4]输出:[2,1,4,3]

示例 2:

输入:head = []输出:[]

示例 3:

输入:head = [1]输出:[1]

提示:

  • 链表中节点的数目在范围 [0, 100] 内
  • 0

上一篇:Pighros游戏下载攻略,一键获取安装包,轻松开启游戏之旅!

下一篇:服务器怎么打开显示器接口?