java - 如何在java中的每次迭代中打印变量的值(下一个,上一个,当前,当前下一个)?
问题描述
我正在编写反向链表逻辑,但我想要每次迭代中的变量值。那么,我可以打印价值吗?因为我想像这样打印 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 是因为您在将当前节点设置为下一个节点之后打印当前数据,这是不可取的,因为您不知道它是否为空。
推荐阅读
- random - WIX 帮助 在幻灯片库中随机启动
- reactjs - 带有 React 内联块的安全 CSP
- sql-server - 使用 jdbc Logstash 连接到 SQL Server 时出错
- c# - 在 Xamarin 表单中使用 MVVM 切换图像可见性
- json - 在 VBA 中访问 JSON-Object 中的嵌套值
- java - 使用大整数时间复杂度的递归斐波那契
- java - 在项目“:app”中找不到任务“包装器”。尝试导入弹簧依赖项时
- vb.net - DisplayAccountInformation Outlook VB.NET
- javascript - 印地语 HTML 输入
- javascript - Chrome 扩展“MAX_WRITE_OPERATIONS_PER_MINUTE”错误