应用题-链表专题-删除链表的倒数第N个节点

管理员
**删除节点,着重点就去想,怎么找到前驱节点** 至于找到的方法就很多了,下面就是通过间距来确定待删除节点的前驱节点的。 ```python # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: # 一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]: if not head: return None dummy_head = ListNode( next=head ) tail = dummy_head # tail站在链表的尾部 倒数n,即tail前n个节点 parent = dummy_head # del_parent表示待删除节点的父节点 steps = 0 while tail.next: tail = tail.next steps += 1 if steps > n: parent = parent.next parent.next = parent.next.next return dummy_head.next ```
评论 0

发表评论 取消回复

Shift+Enter 换行  ·  Enter 发送
还没有评论,来发表第一条吧