力扣中19 删除链表的倒数第N个节点

 

就是双指针移动呢 忽略了特殊情况的判断 有可能是设置的标记倒数第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个改指针

posted @ 2023-02-27 16:52  Ssshiny  阅读(16)  评论(0)    收藏  举报