LeetCode19删除链表的倒数第N个节点(java实现,详细思路包教包会)
2024-01-03 17:49:13
今天,我们分享的题目是leetcode第19题,话不多说,上题目。
解题思路:
我们还是定义一个虚拟节点vir
指向头结点,假如我们要删除的是倒数第二个节点,也就是3,那么我们的节点指针必须指向节点2才可以进行删除3号节点的操作。那么我们首先需要确定的是vir节点需要移动几次才可以指向欲删除节点的前一个节点。
下面是具体的实现代码:
public static ListNode removeNthFromEnd(ListNode head, int n) {
ListNode vir=new ListNode();
vir.next=head;
ListNode cur=vir;
ListNode sz=head;
int count=0;
while (sz!=null){
sz=sz.next;
count++;
}
while (count-n>0){
cur=cur.next;
count--;
}
if (cur.next.next==null){
cur.next=null;
}else {
cur.next=cur.next.next;
}
return vir.next;
}
可以看到,我们首先是对链表的长度进行统计,然后就可以通过链表长度及传入的n进行计算cur需要移动几次。这里cur指向的就是vir节点。最后将vir.next进行返回。
那么本次的题目讲解就到这里结束了,觉得博主写的对你有帮助的希望别忘了给博主一个三连,灰常感谢(●’?’●)!
文章来源:https://blog.csdn.net/Kirihara_Yukiho/article/details/135366683
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!