美文网首页
19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点

作者: 名字是乱打的 | 来源:发表于2021-06-29 23:39 被阅读0次

    思路:

    双指针法,定义一个快指针先跑n步,慢指针开始跑,当快指针跑到最后一个元素的时候,慢指针下一个结点就是要删除的结点

    代码:

    class Solution {
        //输入:head = [1,2,3,4,5], n = 2
        //输出:[1,2,3,5]
        public ListNode removeNthFromEnd(ListNode head, int n) {
            //预设指针
            ListNode pre=new ListNode(0,head);
            ListNode slow=pre;
            ListNode first=pre;
            //快指针先走n步
            while (first.next!=null){
                first=first.next;
                if (n==0){
                    slow=slow.next;
                }else {
                    n--;
                }
            }
            slow.next=slow.next.next;
            return pre.next;
        }
    }
    

    相关文章

      网友评论

          本文标题:19. 删除链表的倒数第 N 个结点

          本文链接:https://www.haomeiwen.com/subject/lndlultx.html