题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
说明:本题目包含复杂数据结构TreeNode,点此查看相关信息

  1. # -*- coding:utf-8 -*-
  2. # class TreeNode:
  3. # def __init__(self, x):
  4. # self.val = x
  5. # self.left = None
  6. # self.right = None
  7. class Solution:
  8. # 返回二维列表[[1,2],[4,5]]
  9. def Print(self, pRoot):
  10. # write code here
  11. if not pRoot:
  12. return []
  13. ret = []
  14. curr_stack = [pRoot]
  15. while curr_stack:
  16. next_stack = []
  17. curr_val = []
  18. for node in curr_stack:
  19. if node.left:
  20. next_stack.append(node.left)
  21. if node.right:
  22. next_stack.append(node.right)
  23. curr_val.append(node.val)
  24. curr_stack = next_stack
  25. ret.append(curr_val)
  26. return ret