大年初一来一题:思想很简单,就是两个指针相距n,后一个指针走到尾节点时前一个指针的下一个节点即为要删除的节点,思想简单,但是不同的写法时间复杂度相差不小,经过优化,下列算法beats59%
public class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode preDelete,toLastNode;
ListNode headNode=new ListNode(0);
headNode.next=head;
preDelete=toLastNode=headNode;
while(toLastNode.next!=null){
n--;
if(n<0){
preDelete=preDelete.next;
}
toLastNode=toLastNode.next;
}
preDelete.next=preDelete.next.next;
return headNode.next;
}
}