我有一个带有如下所示节点的二叉树。
class Node:
def __init__(self, value=None, left=None, right=None):
self.value = value
self.number = None
self.left = left
self.right = right
给定一棵树,我想按后序从 0 开始编号。我想做的一个例子
>>> left = Node(None, Node(3), Node(2))
>>> right = Node(None, Node(9), Node(10))
>>> node = Node(None, left, right)
>>> number(node)
>>> tree.left.number, tree.right.number, tree.number
0, 1, 2
但是,我无法为递归部分找到正确的案例。
我正在尝试类似的东西
def number(node, count=0):
if not node.left and not node.right:
node.number = count
count += 1
else:
number(node.left, count)
number(node.right, count)