Python二叉树遍历算法
# 定义一棵树结构
class Tree:def __init__(self, value):self.value = valueself.left = Noneself.right = Nonedef zhong(tree, array=[]):"""中序遍历:param tree: :param array: :return: """if tree is None:return arrayzhong(tree.left, array)array.append(tree.value)zhong(tree.right, array)return arraydef pre(tree, array=[]):"""前序遍历:param tree: :param array: :return: """if tree is None:return arrayarray.append(tree.value)pre(tree.left, array)pre(tree.right, array)return arraydef behind(tree, array=[]):"""后序遍历:param tree: :param array: :return: """if tree is None:return arraybehind(tree.left, array)behind(tree.right, array)array.append(tree.value)return array# 按照给出的树,构建树形结构
tree = Tree(10)
tree.left = Tree(5)
tree.right = Tree(15)
tree.left.left = Tree(2)
tree.left.right = Tree(5)
tree.left.left.left = Tree(1)
tree.right.right = Tree(22)print(zhong(tree, []))
print(behind(tree, []))
print(pre(tree, []))
参考视频:https://www.bilibili.com/video/BV1Ev411i7Rk/?spm_id_from=333.337.search-card.all.click&vd_source=30aff718c4a81a6d17f211397fc39bb7