初始化二叉树后打印出现None值,如何解决?
解决二叉树打印时输出None的问题
你的代码里,递归调用tree(root.left)和tree(root.right)时用了print()包裹,但tree函数的返回值是None,所以每次递归结束都会打印这个返回值,导致输出里出现一堆None。
只需要调整递归调用的方式,去掉不必要的print即可,修改后的代码如下:
class TreeNode: def __init__(self, root=None, left=None, right=None): self.value = root self.left = left self.right = right def tree(root): if root is not None: print(root.value, end=' ') # 用end=' '让结果在一行显示为"1 2 3",不需要的话可以去掉这个参数 tree(root.left) tree(root.right) root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(3) tree(root)
改动说明:
- 去掉了
print(tree(root.left))和print(tree(root.right))里的print,直接调用递归函数,避免打印函数返回的None - 给
print添加end=' '参数,让所有节点值在同一行输出,符合你想要的1 2 3格式;如果需要每个值单独换行,删掉这个参数即可
内容的提问来源于stack exchange,提问作者Reactoo
相关产品推荐
相关产品推荐

