按层打印二叉树

Posted shuangcao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按层打印二叉树相关的知识,希望对你有一定的参考价值。

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

输出:

二维列表:[[1,2],[4,5]]

思路:

使用两个列表分别存放当前层节点,下一层节点
 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         result = []
12         cur_tmp = []
13         if pRoot==None:
14             return result
15         cur_tmp.append(pRoot)
16         result.append([t.val for t in cur_tmp]) 
17         
18         while cur_tmp:
19             next_tmp= []
20             for i in cur_tmp:
21                 if i.left:
22                     next_tmp.append(i.left)
23                 if i.right:
24                     next_tmp.append(i.right)
25             if next_tmp: # 最后一层的叶子节点,next_tmp是空的
26                 result.append([t.val for t in next_tmp]) 
27             cur_tmp = next_tmp
28             
29         return result

 

以上是关于按层打印二叉树的主要内容,如果未能解决你的问题,请参考以下文章

按层打印二叉树

按层打印二叉树

二叉树按层打印

按层打印二叉树

从上到下按层打印二叉树,每层打印顺序从左到右

62.把二叉树打印成多行