就是双指针移动呢 忽略了特殊情况的判断 有可能是设置的标记倒数第n个节点的指针还没移动呢 形如例子【1,2 n=2】
或者链表很短 都不存loc下下个元素 会找不到 溢出报错
class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode move = head; ListNode loc =head; int count=0; while(move!=null) { move=move.next; if(count<=n) { count=count+1; } else { loc=loc.next; } } if(count!=n+1) {//这个if判断新加的 因为对于都不需要loc移动的情况 可能会由于过短导致没有下下个元素 加个判断 head=head.next; } else{ loc.next = loc.next.next; } return head; } }
题解 存在栈里面后进先出 得到倒数第n+1个改指针
标签:力扣,head,ListNode,19,move,链表,倒数第,指针 From: https://www.cnblogs.com/ayuanjiejie/p/17160199.html