【劍指Offer】22從上往下列印二叉樹
阿新 • • 發佈:2018-11-11
題目描述
從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
時間限制:1秒;空間限制:32768K
解題思路
思路和層次遍歷相似,定義兩個list一個用來記錄當前層的節點,一個用來記錄當前每個節點的左右孩子節點,迴圈列印更新。
Python程式碼:
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回從上到下每個節點值列表,例:[1,2,3] def PrintFromTopToBottom(self, root): # write code here if not root: return [] currentStack = [] #當前層的節點 currentStack.append(root) result = [] while len(currentStack)!=0: nextStack = [] #下一層的子節點 for i in range(len(currentStack)): result.append(currentStack[i].val) if currentStack[i].left != None: nextStack.append(currentStack[i].left) if currentStack[i].right != None: nextStack.append(currentStack[i].right) currentStack = nextStack return result