如何将Node传入类并解决链表遍历输出时的空指针报错问题
代码错误分析与修正
核心错误点
- 循环判断逻辑完全错误:你使用
current.toString() != null作为循环判断条件,但是链表遍历到最后一个节点后,执行current = current.next会让current变为null,此时调用current.toString()会直接触发空指针异常,根本不会执行你写的判空逻辑。 - 缺少边界校验:没有提前判断传入的头节点是否为
null,如果传入空链表会直接触发空指针错误。
修正后代码
public String toString(Node head) { // 先处理空链表的边界情况 if (head == null) { return ""; } // 用StringBuilder替代字符串直接拼接,避免生成大量无用中间对象,性能更高 StringBuilder res = new StringBuilder(); Node current = head; // 优先判断current本身是否非空,再读取节点内容 while (current != null) { res.append(current.toString()); current = current.next; } return res.toString(); }
可选优化
如果需要在节点内容之间添加分隔符(比如->、逗号),可以在append节点内容后添加分隔符,最后删除末尾多余的分隔符即可。
内容的提问来源于stack exchange,提问作者Tobi
相关产品推荐
相关产品推荐

