【问题标题】:Traversal of a binary tree: i cannot get right output in python二叉树的遍历:我无法在 python 中得到正确的输出
【发布时间】:2021-05-06 15:14:52
【问题描述】:

我正在输入 pre-order traversal 并且输出只是 '1-';我查看了该站点上的其他几个线程,但似乎找不到我的错误。任何提示或建议将不胜感激!

class Node(object):
    
    def __init__(self, value):
        self.number = value
        self.left = None
        self.right = None

class binarytree(object):
    
    def __init__(self, root):
        self.root = Node(root)

    def print_traversal(self, direction, start):
        if direction == 'pre_order':
            return self.pre_order(start, '')
        
    def pre_order(self, start, traversal):
        if start:
            traversal += (str(start.number) + '-' )
            self.pre_order(start.left, traversal)
            self.pre_order(start.right, traversal)
        return traversal

# main function
tree1 = binarytree(1)
tree1.root.left = Node(2)
tree1.root.right = Node(3)
tree1.root.left.left = Node(4)
tree1.root.left.right = Node(5)
tree1.root.right.left = Node(6)

print(tree1.print_traversal('pre_order', tree1.root))```

【问题讨论】:

    标签: python-3.x binary-tree binary-search-tree


    【解决方案1】:

    线

    traversal += (str(start.number) + '-' )
    

    给局部变量traversal赋一个新值;它确实修改traversal 中已经存在的字符串。因此,在递归调用中所做的更改永远不会在进行更改的级别上看到。

    【讨论】:

      猜你喜欢
      • 2014-02-24
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多