# 面试题32:从上到下打印二叉树
# 定义二叉树节点
class BinaryTreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class Solution:
# 从上到下按层打印
def Print_Up_Down(self, tree):
# 构造队列
queue = []
# 构造打印结果列表
result = []
if not tree:
return False
queue.append(tree)
while queue:
tree = queue[0]
if tree.left:
queue.append(tree.left)
if tree.right:
queue.append(tree.right)
queue.pop(0)
# 打印结果
result.append(tree.val)
return result
if __name__=="__main__":
# 构造二叉树
tree = BinaryTreeNode(8)
tree.left = BinaryTreeNode(6)
tree.right = BinaryTreeNode(10)
tree.left.left = BinaryTreeNode(5)
tree.left.right = BinaryTreeNode(7)
tree.right.left = BinaryTreeNode(9)
tree.right.right = BinaryTreeNode(11)
solution = Solution()
print(solution.Print_Up_Down(tree))