码迷,mamicode.com
首页 > 其他好文 > 详细

按层打印二叉树

时间:2020-07-23 23:21:46      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:pre   coding   打印二叉树   color   ini   sel   节点   title   app   

题目描述

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

输出:

二维列表:[[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

 

按层打印二叉树

标签:pre   coding   打印二叉树   color   ini   sel   节点   title   app   

原文地址:https://www.cnblogs.com/shuangcao/p/13368616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!