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

Posted Yawn,

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode——删除链表的倒数第N个节点相关的知识,希望对你有一定的参考价值。

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

}

以上是关于Leetcode——删除链表的倒数第N个节点的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 19删除链表的倒数第N个节点

Leetcode 19 删除链表的倒数第 N 个节点

LeetCode 第18题 删除链表的倒数第N个节点

LeetCode - 19 - 删除链表的倒数第N个节点 - Java

LeetCode(19):删除链表的倒数第N个节点

LeetCode 19 - 删除链表的倒数第N个节点 - [链表]