第一个节点上的链表无限循环



在循环期间打印节点的值我发现它总是在第一个节点上进行无限循环,例如,当搜索不在列表中的节点时(如果它在列表中,它就起作用)。Im使用一个节点来指向第一个元素以及最后一个元素。

这是我的搜索方法

public LNode search(int data){
    LNode currNode = head;
    while(data != currNode.value){
        if(currNode.next == null)
            return null;
        else{
            currNode = currNode.next;
            System.out.println("currnode " + currNode.value);
        }
    }
    return currNode;
}

总是在开始时插入元素的插入方法

public void insert( LNode aNode ) { 
    if(head==null){
        head = aNode;
        tail = aNode;
        size++;
    }
    aNode.next = head;
    head = aNode;
    size++;
}

这就像第一个输入的元素有一个没有设置为null的下一个节点,但我不知道为什么它不是null

我认为

if(head==null){
    head = aNode;
    tail = aNode;
    size++;
}

缺少返回。你用头做一个环,用一个插入物将尺寸增加2。

最新更新