首页 > 解决方案 > python树数据结构的打印问题

问题描述

当我运行这个程序时,这个树中存在的任何节点都会m_tree.print_values(root)出现数据和 3 次无。我不明白为什么会出现这些 None 因为函数应该只打印值。

class Tree:
    def __init__(self, root=None):
        self.root = root

    def print_values(self, root):
        if root != None:
            print(root.data)
            print(self.print_values(root.left))
            print(self.print_values(root.right))
        #Define other tree operations that you want to perform here

class Node:
    def __init__(self, data=0, left=None, right=None):
        self.data = data
        self.left=left
        self.right=right

#Create a root node
root = Node(0)

#Create a tree with the root node
m_tree = Tree(root)


#Add a left and right node to the root
left_node = Node(3)
right_node = Node(4)
root.left = left_node
root.right = right_node

m_tree.print_values(root)

标签: pythonpython-3.x

解决方案


print_values 没有return声明,所以默认返回 None。因此,如果您调用print_values并打印结果,它将打印无。

更改您的递归调用,以便它们print_values在不打印结果的情况下调用。

def print_values(self, root):
    if root != None:
        print(root.data)
        self.print_values(root.left)
        self.print_values(root.right)

推荐阅读