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;
    }
}
相关推荐
小贾要学习40 分钟前
【数据结构】C++实现红黑树
数据结构·c++
235162 小时前
【LeetCode】146. LRU 缓存
java·后端·算法·leetcode·链表·缓存·职场和发展
周杰伦_Jay4 小时前
【Java集合体系】全面解析:架构、原理与实战选型
java·开发语言·数据结构·链表·架构
tkevinjd5 小时前
反转链表及其应用(力扣2130)
数据结构·leetcode·链表
HalvmånEver5 小时前
红黑树实现与原理剖析(上篇):核心规则与插入平衡逻辑
数据结构·c++·学习·算法·红黑树
Rubisco..9 小时前
牛客周赛 Round 111
数据结构·c++·算法
代码小菜鸡6669 小时前
java 常用的一些数据结构
java·数据结构·python
火山灿火山9 小时前
详解AVL树旋转操作实现
数据结构·c++
少许极端10 小时前
算法奇妙屋(六)-哈希表
java·数据结构·算法·哈希算法·散列表·排序
Da Da 泓10 小时前
shellSort
java·数据结构·学习·算法·排序算法