当前位置 : 主页 > 编程语言 > python >

【LeetCode Python实现】19. 删除链表的倒数第 N 个结点(中等)首次 99.5% +

来源:互联网 收集:自由互联 发布时间:2022-06-15
文章目录 题目描述 示例 1: 示例 2: 示例 3: 提示: 参考代码 题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head = [ 1 , 2 , 3 , 4 , 5

文章目录

  • 题目描述
  • 示例 1:
  • 示例 2:
  • 示例 3:
  • 提示:
  • 参考代码


题目描述

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

示例 1:

【LeetCode Python实现】19. 删除链表的倒数第 N 个结点(中等)首次 99.5% +_头结点

输入: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 参考代码

第一次遍历获取链表的长度,第二次遍历到达要截取的位数移除节点。

# 24 ms 15 MB # 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: lens = 1 temp = head while temp.next: temp = temp.next lens += 1 if lens < n: return None elif lens == n: return head.next else: temp = head for i in range(lens - n - 1): temp = temp.next if n == 1: temp.next = None else: temp.next = temp.next.next return head
网友评论