题解 | #删除链表的倒数第n个节点#

删除链表的倒数第n个节点

https://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {

 



    public ListNode removeNthFromEnd (ListNode head, int n) {
         
        // write code here
        //先找到倒数第n个节点
        ListNode f = head;
        ListNode s = head;

        while(n>0){
            if(f!=null){
                f = f.next;
            }//此题不用考虑n大于链表长度
            n--;
                

        }

        ListNode pre = new ListNode(0);
        pre.next = s;

        if(f==null){
            //此时说明删除的是头节点,因为n最多等于链表长度
            return head.next;
        }
       while(f!=null){
        f=f.next;

        s=s.next;
        pre = pre.next;

       }
       pre.next = s.next;

       





        return head;
    }
}

全部评论

相关推荐

2025-12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务