zoukankan      html  css  js  c++  java
  • 删除链表的倒数第N个节点

    题目:删除链表的倒数第N个节点

    问题描述:

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

    解决思路:

    删除链表的倒数第 n 个节点即是删除链表的顺数第 (size-n+1) 个节点(size为链表的长度),所以我们可以利用快慢指针来解决此问题:先让快指针走 n 步,剩余的即可由快慢指针一起走,当快指针走到末尾时,待删除的元素就位于慢指针的下一个元素。

    解决代码:

    
    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) {
            return head.next;
        }
    
        while(fast.next != null) {
            fast = fast.next;
            slow = slow.next;
        }
    
        slow.next = slow.next.next;
    
        return head;
    }
    
    
  • 相关阅读:
    阅读
    做人做事、原则
    20150913HTML5心得
    动画-七夕言情
    20150818 句子
    网站链接备份
    javascript设计模式2
    javascript设计模式1
    sunlime操作
    node系列4
  • 原文地址:https://www.cnblogs.com/syhyfh/p/13288275.html
Copyright © 2011-2022 走看看