难度:中等
题目描述:

思路总结:
- 这题乍一看有啥难的,其实真正困难的是某些用例,比如要删的是头结点如何处理。我这里用的是存每一个元素的方法,肯定不是最好的解法,需要在看一下别人的题解。
- 两次遍历。
题解一:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
#思路:遍历一遍记录所有节点,然后找到第len-n个元素,修改其next元素
ls = []
cur = head
while cur:
ls.append(cur)
cur = cur.next
cur = ls[len(ls)-n-1]
#这里的判断是中等题的难度所在,涉及到的用例[1,2] 2
if len(ls)-n-1 >= 0:
cur.next = cur.next.next
else:
head = head.next
return head
题解一结果:

本文探讨了链表中删除倒数第N个节点的问题,通过两次遍历的策略实现,首先记录所有节点,再定位并修改目标节点的连接。特别关注了特殊情况,如删除头结点的情况。

被折叠的 条评论
为什么被折叠?



