''' 題目描述 從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 思路: 二叉樹的層序遍歷 ''' # -*- 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]]
python 把二叉樹打印成多行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.