題目描述
從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
思路:
1、把每層節點的val值用list存好
2、把每層節點存好:
①計算當層節點的個數,這樣就保證下一步每層的結點都被pop光
②然后依次彈出從左到右的每個節點,然后在list中加入該節點對應的左結點、右節點(如果存在的話)
代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
class TreeNode(): def __init__( self ,x): self .val = x self .left = None self .right = None def function(root): result = [] if not root: return result A = [] A.append(root) while A: temp = [] size = len (A) for Node in A: temp.append(Node.val) result.append(temp) for i in range (size): node = A.pop( 0 ) if node.left: A.append(node.left) if node.right: A.append(node.right) return result |
總結
以上就是本文關于Python編程把二叉樹打印成多行代碼的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
原文鏈接:http://blog.csdn.net/u010636181/article/details/78448127