class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode dummy = new ListNode(0);
ListNode fast = dummy;
ListNode slow = dummy;
dummy.next = head;
for(int i=0; i<n; i++){
fast = fast.next;
}
while(fast.next != null){
fast = fast.next;
slow = slow.next;
}
slow.next = slow.next.next;
return dummy.next;
}
}
归纳:
注意是倒数第n个,快指针先移动n,然后快慢指针同步移动
该代码实现了一个方法,通过双指针技术在链表中删除倒数第n个节点。首先,快指针移动n步,然后快慢指针同步移动,当快指针到达链表尾部时,慢指针则指向倒数第n个节点的前一个位置,从而实现删除目标节点。
421

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



