如何解决如何在Java的每次迭代中打印变量的值next,prev,current,currentNext?
我正在写一个反向链表逻辑,但是我希望每次迭代都使用变量的值。 所以,我可以打印值吗? 因为我正在尝试像这样打印System.out.println(current.data); 然后我得到空指针异常。 所以,我可以解决它或打印值。
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 reverse(Node node)
{
Node prev = null;
Node current = node;
Node next = null;
while (current != null) {
System.out.print(node.data+"R");
System.out.println(current.data+"S");
System.out.print(current.next.data);
next = current.next;
current.next = prev;
prev = current;
current = next;
}
node = prev;
return node;
}
NPE是因为您正在打印当前数据之后,将当前节点设置为下一个节点,所以这是不希望的,因为您不知道它是否为空。