java - 重复链表上的最后一个元素

标签 java list linked-list

我有一个 linkNode(名为 List),它具有以下值

x y z 1 2 3

我希望它看起来像这样:

x y z 1 2 3 3

我写了以下内容:

ListNode front=list;
ListNode back = list;
while (front != null)
{
    back = front;
    front = list.getNext();
}

ListNode x = new ListNode (front.getValue(),back.getNext());
back.getNext().setNext(x);

为什么这不起作用?我并没有真正收到错误,当我运行代码时,它会打印出我以前拥有的方法,而这个只是空白

打印方法:

public static void print(ListNode list)
{
    String p="";
    while(list!=null)
    {
        p+=list.getValue()+" ";
        list=list.getNext();
    }

    System.out.println(p);
}       

添加节点的方法:

ListNode z = new ListNode("x",
                 new ListNode("y",
                     new ListNode("z",
                         new ListNode("1",
                             new ListNode("2",
                                 new ListNode("3",,null)))));

最佳答案

好吧,这里有很多问题;在你的循环中你做:

front = list.getNext();

这不会去任何地方,只是重复获得列表的头部。尝试:

front = front.getNext();

接下来你要做的:

ListNode x = new ListNode (front.getValue(),back.getNext());
back.getNext().setNext(x);

如果修复上面的循环,此时 frontnull,因此变为:

ListNode x = new ListNode (null.getValue(), null);
null.setNext(x);

这会严重崩溃,所以我认为你想要:

ListNode x = new ListNode(back.getValue(),back.getNext());
back.setNext(x);

但是,在没有看到setNext()等代码的情况下,我不太确定这是否正确。

关于java - 重复链表上的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40967335/

相关文章:

java - Android 本地化查询

java - Java中队列链表中的递归toString

c++ - 简单链表C++函数调用后指针自动改变

java - Java 中不可编辑的 ParagraphView

java - 从另一个 Activity 引用一个 Activity 的属性

python - 如何将多个 excel 行放入一个带有子列表的大列表中?

python - 如何忽略添加到 Python 列表中的特定元素

list - 使用 scanLeft 打包符号

c - 链表实现段错误

java - 将字符串数组写入文件 - 一行?