gpt4 book ai didi

java - 从java中的LinkedList中删除倒数第二个节点

转载 作者:太空宇宙 更新时间:2023-11-04 07:05:17 27 4
gpt4 key购买 nike

我正在研究一种应该删除最后一个节点之前的节点的方法,这个逻辑对我来说似乎很好,但是当我尝试在项目中实现它时,它没有成功。 (哦,我正在使用 MyLinkedList)

代码如下:

public void deleteSec(){
Node current = head;
Node p = head.next;
Node q = null;

while(p.next!=null){
q = current;
current.next = p;
p = p.next;
}
q.next = p; // q.next = q.next.next;
}

最佳答案

如果您的 LL 为空怎么办? head 将为 null,这将在调用 head.next 时导致异常;

您必须处理特殊情况,例如:空 LL、具有一个节点的 LL、具有两个节点的 LL。

这是我的代码:

public void deleteSec() {
if (head == null) {
return;
}
if (head.next == null) {
return;
}
if (head.next.next == null) {
head = head.next;
return;
}
Node current = head;
Node p = current.next;
Node q = p.next;
while (q.next != null) {
current = current.next;
p = p.next;
q = q.next;
}
current.next = q;
}

关于java - 从java中的LinkedList中删除倒数第二个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com