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

链表打印函数问题:仅返回首个节点值,如何打印全部链表数据?

问题原因与解决方案

你的printl函数只返回第一个值的核心问题是:return temp.data会在第一次循环时直接终止函数,导致后续节点的遍历逻辑完全没机会执行。

修复方案1:直接打印所有链表数据

把return替换成print,让函数遍历每个节点并输出数据,直到链表末尾:

def printl(llist):
    temp = llist.head
    while(temp):
        print(temp.data)
        temp = temp.next

修复方案2:返回所有数据的列表(方便后续处理)

如果需要把链表数据收集起来而非直接打印,可以用列表存储所有节点数据,最后返回整个列表:

def printl(llist):
    data_list = []
    temp = llist.head
    while(temp):
        data_list.append(temp.data)
        temp = temp.next
    # 可选:打印列表
    print(data_list)
    return data_list

调用验证

在你的主程序中添加函数调用即可看到所有数据:

if __name__=='__main__':
    llist = LinkedList()
    llist.head = Node(1)
    llist.head.next = Node(2)
    llist.head.next.next = Node('3a')
    
    # 调用打印函数
    printl(llist)

执行后会输出:

1
2
3a

(如果用方案2,会输出[1, 2, '3a'])

内容的提问来源于stack exchange,提问作者Samar Pratap Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:35:17