-
题目链接 https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/submissions/
-
题目描述
- 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
-
给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.
-
解题思路
- 通过双指针找到待删除元素的前一个元素,先让一个指针i走n个节点,然后同时遍历头节点和i节点。
- 将该元素的next节点设置为其next节点的next节点
-
代码
- python
class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: if not n or not head: return head res = ListNode(0) res.next = head tmp = res while n >= 0: tmp, n = tmp.next, n - 1 head = res while tmp: tmp, head = tmp.next, head.next head.next = head.next.next return res.next
- python
leetcode 19. 删除链表的倒数第N个节点
最新推荐文章于 2024-01-25 14:21:49 发布