所以这个方法应该遍历列表并删除每个第三个节点,直到只剩下一个节点,我的代码是这样的:
public void printWinningPosition() {
Node<T> pos = head;
Node<T> prev=null;
while (size()>=1){
for (int i=1;i<3;i++){
if (pos.link!=null){
prev=pos;
pos=pos.link;
}else{
pos.link=head;
pos=pos.link;
}
}
System.out.println("Eliminate suitor #"+pos.data);
prev.link=pos.link;
pos=pos.link;
System.out.println(size());
outputList();
}
}
我输入的列表只包含数字从1到7的对象。现在输出是正确的,直到第三次删除,它似乎进入无限循环或删除代码的某些东西,这是打印后的部分&#34;消除suitor x&#34;。
我的控制台看起来像这样
Eliminate suitor #3
6
1 2 4 5 6 7
Eliminate suitor #6
5
1 2 4 5 7
Eliminate suitor #2
所以它删除了正确的节点和东西,但我不知道为什么它在尝试删除#2时停止工作,程序没有停止,但它被卡在这里
提前致谢!