zoukankan      html  css  js  c++  java
  • [Leetcode19] Remove Nth Node From End of List

    视频讲解  http://v.youku.com/v_show/id_XMTY1MTMzNjAyNA==.html

    (1)定义两个指针

        ListNode fast = head;

        ListNode slow = head; 

    (2)将快指针向前移动N步

     

    (3.1)判断此时快指针是否已经到达尽头,如果是,头节点就是要删除的节点,返回head.next。

     

    (3.2)将快慢两个指针同时以相同的速度往前移动,当快指针走到尽头的时候,慢指针的下一个位置就是倒数第N个节点,将慢指针next指向next.next.

    public class Solution {
        public ListNode removeNthFromEnd(ListNode head, int n) {
           
            
            ListNode fast = head;
            ListNode slow = head;
            
            for(int i=0;i<n;i++){
                fast = fast.next;
            }
            
            if(fast == null){
                head = head.next;
                return head;
            }
            
            while(fast.next != null){
                fast = fast.next;
                slow = slow.next;
            }
            
            slow.next = slow.next.next;
            return head;
        }
    }

     

  • 相关阅读:
    【面试】Java基础
    GC
    【面试】JVM
    Spooling技术
    数据结构之 平衡二叉树
    二叉树应用
    LINUX设备驱动模型之class
    RTC(x86)
    微内核和单内核
    Linux内核的五大模块
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5689614.html
Copyright © 2011-2022 走看看