java - 将对象添加到循环列表的末尾

标签 java nodes circular-list

我这里有一个工作代码,它在末尾添加了一个新节点。但由于某种原因,添加第三个节点后,第一个节点消失了。

这就是方法

public boolean add(Token obj)  {

    if(obj == null){
        return false;
    }

    if (head == null){
        head = new Node(null, null, obj);
        return true;
    }

    while (head.next != null){
        head = head.next;
    }
    head.next = new Node(null,null,obj); // Next, Previous , Object

    return true;

}

创建一个新节点

当我像这样从 main 调用它时

public static void main(String[] args) {

    CircularList test = new CircularList();

    Token something = new Token("+");
    test.add(something);
    test.add(new Token(2));
    test.add(new Token(5));



    System.out.println(test.toString());


}

}

我的输出是

“列表包含 2 , 5 个”

因此,如果我删除第三个添加新 token ,即 token (5),第一个 token 就会重新出现。

对此有什么帮助吗?提前致谢

最佳答案

while (head.next != null){
    head = head.next;
}

这是错误的。你改变头指针..

Node temp=head;
while(temp.next!=null)
    temp=temp.next
temp.next=new Node(null,null,obj);

关于java - 将对象添加到循环列表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29113536/

相关文章:

java - 有没有办法使用 Marketo REST API 从 csv 文件导入自定义对象数据?

java - Groovy 文字正则表达式/\\/未编译

java - DBpedia YAGO 类的数据集?

java - ByteArrayOutputStream.toByteArray() 返回随机字节?

python - Networkx:NetworkXException:节点列表包含随机 block 模型的重复项

c - 使用此特定函数将元素附加到循环链表的末尾

javascript - d3.js 树节点布局删除根节点

C链表searchNode/freeList方法(seg fault)

Java方法等于循环列表

C++ 循环链表 : remove element