Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中的每次迭代中打印变量值(next、prev、current、currentNext)?_Java - Fatal编程技术网

如何在java中的每次迭代中打印变量值(next、prev、current、currentNext)?

如何在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

我正在写一个反向链表逻辑,但是我想要每个迭代中变量的值。 所以,我可以打印值?? 因为我试图像这样打印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 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
,以便只打印实际存在的值。