首页 > Java > java教程 > 正文

Java怎么删除链表的倒数第N个节点

WBOY
发布: 2023-04-28 15:52:14
转载
1137 人浏览过
解题思路
  1. 整体思路是让前面的指针先移动n步,之后前后指针共同移动直到前面的指针到尾部为止。

  2. 首先设立预先指针 pre,预先指针是一个小技巧,在第2题中进行了讲解

  3. 设预先指针 pre 的下一个节点指向 head,设前指针为 first,后指针为 second,二者都等于 pre

  4. first 先向前移动n步

  5. 之后 first 和 second 共同向前移动,此时二者的距离为 n,当 first 到尾部时,second 的位置恰好为倒数第 n 个节点的上一个结点。

Java代码
class Solution {
    
       public ListNode removeNthFromEnd(ListNode head, int n) {

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

        ListNode first = pre;
        ListNode second = pre;

        while (n>0){
            first= first.next;
            n--;
        }

        while (first.next != null){
            first=first.next;
            second=second.next;
        }
        second.next = second.next.next;

        return  pre.next;
    }
}
登录后复制

以上是Java怎么删除链表的倒数第N个节点的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:yisu.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!