链表打印函数问题:仅返回首个节点值,如何打印全部链表数据?
问题原因与解决方案
你的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
相关产品推荐
相关产品推荐

