LeetCode-19. 删除链表的倒数第 N 个结点【链表 双指针】

LeetCode-19. 删除链表的倒数第 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]

提示:

链表中结点的数目为 sz
1 <= sz <= 30
0 <= Node.val <= 100
1 <= n <= sz

进阶:你能尝试使用一趟扫描实现吗?

解题思路一:双指针

# 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: Optional[ListNode], n: int) -> Optional[ListNode]:
        dummy_head = ListNode()
        dummy_head.next = head
        cur = pre = dummy_head
        for _ in range(n):
            cur = cur.next
        while cur.next:
            cur = cur.next
            pre = pre.next
        pre.next = pre.next.next
        return dummy_head.next

时间复杂度:O(n)
空间复杂度:O(1)

解题思路二:优化

# 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: Optional[ListNode], n: int) -> Optional[ListNode]:
        dummyHead = ListNode(next = head)
        slow, fast = dummyHead, dummyHead
        while n > 0 and fast != None:
            fast = fast.next
            n -= 1
        fast = fast.next
        while fast != None:
            fast = fast.next
            slow = slow.next
        slow.next = slow.next.next
        return dummyHead.next

时间复杂度:O(n)
空间复杂度:O(1)

解题思路三:0


时间复杂度:O(n)
空间复杂度:O(n)

相关推荐

  1. leetcode19. 删除倒数 N

    2024-04-03 16:00:04       30 阅读
  2. Leetcode19. 删除倒数 N

    2024-04-03 16:00:04       38 阅读
  3. leetcode19. 删除倒数 N

    2024-04-03 16:00:04       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 16:00:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 16:00:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 16:00:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 16:00:04       18 阅读

热门阅读

  1. 5G时代来了,一键登录的颠覆式体验时代也来了

    2024-04-03 16:00:04       14 阅读
  2. ES 7.12官网阅读-ILM(index lifecycle management)

    2024-04-03 16:00:04       13 阅读
  3. LEETCODE-DAY41

    2024-04-03 16:00:04       13 阅读
  4. c++ 实现线程池、实现异步接口

    2024-04-03 16:00:04       13 阅读
  5. LeetCode 746. 使用最小花费爬楼梯

    2024-04-03 16:00:04       13 阅读
  6. 模拟退火算法

    2024-04-03 16:00:04       11 阅读
  7. 每日OJ题_回文串dp①_力扣647. 回文子串

    2024-04-03 16:00:04       10 阅读
  8. 【WPF应用24】C#中的Image控件详解与应用示例

    2024-04-03 16:00:04       14 阅读
  9. rust实现希尔排序算法

    2024-04-03 16:00:04       14 阅读
  10. 七彩云转码系统v12.8二开正式版发布

    2024-04-03 16:00:04       12 阅读