如何考虑以下模式构建二叉树 - 左右孩子,以及父母?
class BinaryTree:
def __init__(self, value, left=None, right=None, parent=None):
self.value = value
self.left = left
self.right = right
self.parent = parent
我之前用过最简单的模式。
tree = BinaryTree(1)
tree.left = BinaryTree(2)
tree.right = BinaryTree(3)
tree.left.left = BinaryTree(4)
tree.left.left.left = BinaryTree(6)
tree.left.right = BinaryTree(5)
# 1
# / \
# 2 3
# / \
# 4 5
# /
# 6
答案 0 :(得分:0)
您还需要设置子小部件的父级。由于父母在孩子被初始化的那一刻就知道你可以使用 parent
的 BinaryTree.__init__
参数,即
tree.left = BinaryTree(2, parent=tree)
tree.left.left = BinaryTree(4, parent=tree.left)
等