我有一个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)))));
答案 0 :(得分:1)
front = list.getNext();
这不会去任何地方,只是重复获得列表的头部。尝试:
front = front.getNext();
接下来你做:
ListNode x = new ListNode (front.getValue(),back.getNext());
back.getNext().setNext(x);
如果你修复了上面的循环,此时front
为null
,那么这就变成了:
ListNode x = new ListNode (null.getValue(), null);
null.setNext(x);
这会严重崩溃,所以我想你想要:
ListNode x = new ListNode(back.getValue(),back.getNext());
back.setNext(x);
但是,如果没有看到setNext()
等的代码,我不太确定这是否正确。