gpt4 book ai didi

java - 替换双链表中的节点

转载 作者:行者123 更新时间:2023-12-01 14:46:15 25 4
gpt4 key购买 nike

给定两个双链表,我不仅要更改元素,还要更改其中一个列表的节点,以便相同位置的总和等于某个数字。

public void repair(int num){
Node list1 = head1;
Node right = head2;

for(int i = 0; i<size; i++){
int element = num - list1.element;
Node p = right.previous;
Node s = right.next;
right = new Node(element, null, null);

p.next = right;
right.previous = p;
right.next = s;
s.previous = right;

list1 = list1.next;
right = right.next;
}
}

size = 两个列表的大小相同。我已经尝试了很多方法,但它总是在 p.next = right 和 s.previous = right; 上给我 nullpointerException;

我不明白为什么它会给我这个错误。有人可以解释并告诉我解决这个问题的方法吗?

最佳答案

这意味着p是null

Node p = right.previous;

必须返回null

由于 right 被定义为 head2,因此您必须查看 head 2 并找出为什么 head2.previous 为空。我猜这是列表的开头或其他东西。

您需要进行空检查,以便仅在下一个/上一个节点不为空时对它们运行操作。

关于java - 替换双链表中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15414972/

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