通过构造虚拟头指针法:
双指针法:快指针先走n步,再让快慢指针同时走。快指针到最后结束,再删除慢指针指向节点的下一个节点,完成。
class Solution {
ListNode dimmynode = new ListNode(0);
public ListNode removeNthFromEnd(ListNode head, int n) {
dimmynode.next = head;
ListNode low, fast;
low = dimmynode;
fast = dimmynode;
while(n-->0){
fast = fast.next;
}
while(fast.next != null){
fast = fast.next;
low = low.next;
}
low.next = low.next.next;
return dimmynode.next;
}
}