基本上我有这个二叉树:
我想要做的是遍历它,所以我得到一个 str 返回给我,其值 + BA 。为此,我有以下功能:
def order(root):
if (root != None):
root.visit() # this calls a binary tree function that just prints out root.data
order(root.right)
order(root.left)
这很好用,但我需要返回 str 而不是打印每次遍历。我尝试创建一个str,然后执行 str + = root.visit(),但每次都重置,所以最后它不起作用。如何返回包含所有遍历的字符串?
我尝试了什么:
def order(root):
rep = ""
if (root != None):
rep += root.visit()
order(root.right)
order(root.left)
return rep
答案 0 :(得分:0)
只是做:
def order(root):
return '' if root is None else root.visit() + order(root.right) + order(root.left)
或if
声明:
def order(root):
if root is None:
return ''
return root.visit() + order(root.right) + order(root.left)
答案 1 :(得分:0)
为了预先遍历二叉树,你应该遵循这个方案:
def traverse(node):
rep = ""
if node is not None:
rep += node.visit()
rep += traverse(node.right)
rep += traverse(node.left)
return rep