''' 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路: 二叉树的层序遍历 ''' # -*- coding:utf-8 -*- class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: # 返回二维列表[[1,2],[4,5]] def Print(self, pRoot): # write code here if pRoot is None: return [] if pRoot.left is None and pRoot.right is None: return [[pRoot.val]] stack=[pRoot] output=[] while(stack): temp=[] for i in range(len(stack)): out_node=stack.pop(0) temp.append(out_node.val) if out_node.left is not None: stack.append(out_node.left) if out_node.right is not None: stack.append(out_node.right) output.append(temp) return output if __name__=='__main__': here=TreeNode(8) here.left=TreeNode(6) here.right=TreeNode(10) here.left.left=TreeNode(5) here.left.right = TreeNode(7) here.right.left = TreeNode(9) here.right.right = TreeNode(11) print(Solution().Print(here)) #[[8], [6, 10], [5, 7, 9, 11]]