当前位置 博文首页 > Liu,:Leetcode——删除链表的倒数第N个节点

    Liu,:Leetcode——删除链表的倒数第N个节点

    作者:[db:作者] 时间:2021-07-20 09:43

    1. 题目

    在这里插入图片描述

    2. 题解

    双指针遍历即可

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode() {}
     *     ListNode(int val) { this.val = val; }
     *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
     * }
     */
    class Solution {
        public ListNode removeNthFromEnd(ListNode head, int n) {
            ListNode slow = head;
            ListNode fast = head;
            for(int i = 0; i < n; i++){     //倒数第几个是从1开始算(倒数第二,其实就是前一个),而i是从0开始计数
                fast = fast.next;
            }
            if(fast == null)        
                return head.next;   //倒数n个的前一个正好是head节点
            while(fast.next != null){
                slow = slow.next;
                fast = fast.next;
            }
            slow.next = slow.next.next;
    
            return head;
        }
    
    }
    
    cs