You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:24:00