题目:

解决方法:快慢指针
public ListNode removeNthFromEnd (ListNode head, int n) {
// write code here
if(head==null)
return head;
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode slow = dummy;
ListNode fast = head;
for(int i =0;i<n;i++){
if(fast==null)
return head;
fast = fast.next;
}
while(fast!=null){
slow = slow.next;
fast = fast.next;
}
slow.next = slow.next.next;
return dummy.next;
}
该博客介绍了一种解决链表问题的方法——快慢指针。通过创建两个指针,快指针每次前进n个节点,慢指针每次前进1个节点,当快指针到达链表尾部时,慢指针则指向倒数第n个节点。然后通过慢指针删除目标节点,有效地处理了链表中删除指定位置节点的难题。
251

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



