由于某种原因,Java单链表节点删除循环进入无限循环

时间:2015-11-11 00:57:06

标签: java linked-list nodes singly-linked-list

所以这个方法应该遍历列表并删除每个第三个节点,直到只剩下一个节点,我的代码是这样的:

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时停止工作,程序没有停止,但它被卡在这里

提前致谢!

0 个答案:

没有答案