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

为何LinkedList的stringify_list()方法无法返回全部节点值?

问题分析与解决方案

问题根源

你的stringify_list方法在遍历链表时直接修改了链表的head_node属性。第一次调用该方法时,遍历过程会把self.head_node一步步移动到链表的最后一个节点。当你第二次(在try块中)调用时,链表的头节点已经是最后一个节点了,自然只能输出它的值。

修复代码

修改LinkedList类中的stringify_list方法,使用临时变量遍历链表,避免修改原链表的头节点:

def stringify_list(self):
    values = "" 
    current_node = self.get_head_node()  # 用临时变量保存遍历起点,不改动原头节点
    while current_node:
        values += str(current_node.get_value()) + "\n"
        current_node = current_node.get_next_node()
    return values.strip()  # 移除末尾多余的换行符

修复说明

  • 使用current_node作为遍历指针,从头节点开始遍历整个链表,全程不会修改self.head_node,保证链表结构始终完整。
  • 修改后的循环条件while current_node可以覆盖所有节点(包括最后一个没有下一个节点的节点),无需单独处理最后一个节点的逻辑,代码更简洁。
  • 调用strip()方法移除最后多余的换行符,让输出格式更整洁。

修改后,无论你调用多少次stringify_list,都会输出完整的节点值:

90
5675
70
5

内容的提问来源于stack exchange,提问作者Ebrahim Al-Aghbari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:11