好吧,长话短说,我在这里要做的是从双向链表中删除值 e 的所有实例。据我所知,我的逻辑至少大部分是正确的,但由于某种原因,它实际上并没有删除我的测试用例中的任何节点。
public boolean removeAll(int e) {
DIntNode dummy = head,next = null;
if (head == null)
return false;
while (dummy != null) {
if (dummy.getData() == e) {
next = dummy.getNext();
dummy.getNext().setPrev(null);
dummy = next;
return true;
}
else
dummy = dummy.getNext();
}
return false;
}
这就是我目前的方法代码。我的逻辑是使用一个从头部开始的虚拟 DIntNode 和一个“下一个”节点来帮助我缩小列表,可以这么说。换句话说,如果列表类似于“1<-> 1 <-> 2 <-> 3”,理论上该函数会将其更改为“2<->3”。这是一个布尔函数的原因是因为如果给定值从列表中删除,我需要返回 true。
我缺少逻辑中的另一个步骤,还是方法本身不可靠?在这一点上我非常不确定,所以任何和所有的帮助将不胜感激。
慕容森
翻翻过去那场雪
慕森王
弑天下
相关分类