删除单链表中倒数第n个节点(JAVA)

本文介绍了如何使用Java删除单链表中的倒数第n个节点。通过链表节点总数,可以方便地获取到需要删除的节点。另外,还探讨了网络上常见的快慢指针法,这种方法不需要预先知道链表长度,通过两个指针的同步移动,巧妙地找到目标节点的前一个节点,从而实现删除操作。
摘要由CSDN通过智能技术生成

单链表主类

参考单链表反转中的主类代码

思路

链表中有字段size是节点总个数
倒数第lastNum个节点就是正数第size-lastNum+1个节点,index=size-lastNum
删除操作需要拿到倒数第lastNum+1个节点来完成,即正数第size-lastNum个节点,index=size-lastNum-1
把该节点的next设置为该节点的next.next即可

代码

public void deleteByLastNum(int lastNum) {
   
    if (lastNum <= 0 || lastNum > size) {
   
        throw new IndexOutOfBoundsException("unSupport");
    }
    if (lastNum == size) {
   
        // 删除第一个
        SinglyLinkedNode<T> remove = this.getHeader();
        this.setHeader(remove.getNext());
        remove.setNext(null);
        remove 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值