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;
    }
    
    
  • 相关阅读:
    游标+递归 查询 客户 子客户 查询财务信用
    导入EXCEL
    ftp读取txt数据并插入数据库
    查询通话时间报表
    4.10上午
    4.7下午
    4.6下午
    4.6上午
    4.5上午
    4.1下午
  • 原文地址:https://www.cnblogs.com/syhyfh/p/13288275.html
Copyright © 2011-2022 走看看