如何在java中的每次迭代中打印变量值(next、prev、current、currentNext)?
我正在写一个反向链表逻辑,但是我想要每个迭代中变量的值。 所以,我可以打印值?? 因为我试图像这样打印System.out.println(current.data); 然后我得到空指针异常。 所以,我可以解析它或打印值如何在java中的每次迭代中打印变量值(next、prev、current、currentNext)?,java,Java,我正在写一个反向链表逻辑,但是我想要每个迭代中变量的值。 所以,我可以打印值?? 因为我试图像这样打印System.out.println(current.data); 然后我得到空指针异常。 所以,我可以解析它或打印值 Node reverse(Node node) { Node prev = null; Node current = node; Node next = null; while (current != null) { next
Node reverse(Node node)
{
Node prev = null;
Node current = node;
Node next = null;
while (current != null) {
next = current.next;
current.next = prev;
prev = current;
current = next;
System.out.print(node.data+"R");
System.out.println(current.data+"S");
System.out.print(current.next.data);
}
node = prev;
return node;
}
在循环开始时打印数据,以确保
current
不为空
节点反转(节点)
{
Node prev=null;
节点电流=节点;
Node next=null;
while(当前!=null){
系统输出打印(节点数据+R);
System.out.println(当前数据+“S”);
系统输出打印(当前、下一个、数据);
下一个=当前。下一个;
current.next=prev;
prev=当前值;
当前=下一个;
}
node=prev;
返回节点;
}
NPE是因为您在将当前节点设置为下一个节点后打印当前数据,这是不可取的,因为您不知道它是否为空。要退出循环,
current
必须在您尝试打印current.data
的点处为null
。因此,您肯定会遇到NullPointerException或陷入无限循环。为什么要在循环内打印节点数据?该值永远不会更改,因此您将反复打印相同的值。也许您需要添加一些检查null
,以便只打印实际存在的值。