• [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;
        }
    }

     

  • 相关阅读:
    实现CA和证书申请
    1.ssh端口
    1.对称加密6和7的操作
    关于网页访问并发量,统计前十,防火墙
    双指针法
    并查集
    c++常用函数
    vector常用方法
    贪心算法
    字符串类问题
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5689614.html
Copyright © 2020-2023  润新知