Java自定义LinkedList实现时show方法无法打印最后一个节点问题求助
问题原因
你的show()方法的循环判断逻辑存在问题:
当前使用while (temp.next != null)作为循环条件,当temp指向链表最后一个节点时,temp.next的值为null,循环会直接终止,最后一个节点的val不会进入循环执行打印逻辑,所以会出现漏打最后一个节点的问题。
修复方案
将循环条件修改为判断当前节点temp本身是否为null,先打印当前节点值再移动指针即可,修复后的show()方法代码如下:
public void show() { Node temp = head; while (temp != null) { System.out.print(temp.val + " "); temp = temp.next; } System.out.println(); }
验证效果
修复后运行主方法:
- 第一次调用
show()会完整输出插入的所有节点:5 10 13 15 20 - 删除值为13的节点后第二次调用
show(),输出为:5 10 15 20
所有节点都可以正常打印。
内容的提问来源于stack exchange,提问作者Saurav Shrivastav
相关产品推荐
相关产品推荐

