day-36 删除链表的倒数第 N 个结点

思路

首先计算出链表的长度,然后删除第n个节点即可,但要注意考虑特殊情况

解题方法

特殊情况:1.删除节点为最后一个节点

2.删除节点为头结点

Code

java 复制代码
/**
 * 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 t=head;
        int len=0;
        while(t!=null){
            len++;
            t=t.next;
        }
        if(n==len) return head.next;
        t=head;
        for(int i=1;i<len-n;i++){
            t=t.next;
        }
        if(t.next==null){
            t=null;
        }else if(t.next.next!=null){
            t.next=t.next.next;
        }else{
            t.next=null;
        }
        return head;
    }
}
相关推荐
疯狂打码的少年4 分钟前
【数据结构】排序算法:归并排序与基数排序
数据结构·笔记·算法·排序算法
淡海水1 小时前
03-03-线性-LinkedList-T-源码不变式与选择边界
windows·链表·c#·编译·linkedlist·clr·机器码
小七在进步2 小时前
数据结构:选择排序
数据结构·算法·排序算法
不会就选b2 小时前
Linux之线程进阶---封装信号量
数据结构·算法
旖旎夜光2 小时前
LeetCode 69:x 的平方根(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
艾莉丝努力练剑2 小时前
【AI大模型接入SDK】项目的数据结构设计
数据结构·人工智能·大模型·sdk·文件系统·岗位
学习星球2 小时前
【LeetCode算法题精讲】图算法精讲——从图遍历到拓扑排序
数据结构·算法·leetcode·图搜索
余额瞒着我当琳2 小时前
C++ list第二讲数据结构修炼:迭代器源码 + 栈队列适配器 + LeetCode 三道高频题
数据结构·c++·list
_Narcissus_3 小时前
常见数论算法笔记
数据结构·c++·算法·高精度·数论·快速幂·质数筛
吴声子夜歌3 小时前
Java面试——数据结构(二)
java·数据结构·面试