python - 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)
解决方案
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)
推荐阅读
- java - 如何使用从 CSV 数据集中读取的 Jmeter 转义逗号?
- build - .Net Core 解决方案在本地构建,但在 Azure DevOPS 管道上构建失败
- ios - 如何在导航栏ios上重叠图像
- facebook - AAD B2C Facebook for Developers IP-Whitelist
- java - 有没有办法在完整的测试运行期间记录 JUnit5 @Disabled 原因值?
- angular - ngModel 值未更新
- python - 如何在绘图模板中包含“titlefont”属性?
- javascript - 如何将“datetime-local”转换为 Unix 时间并将其与 vanilla Javascript 中的当前日期/时间进行比较?
- android - BottomNavigation 下的 Snackbar
- c# - asp.net core 2.1 SecurityStampValidatorOptions ValidationInterval - 在本地工作,在 IIS 中运行