一、题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
二、解决思路
用个队列***q***来记录节点,将每一行节点入队,挨个将每个节点出队,如果节点左孩子存在,左孩子就入队;如果右孩子存在,右孩子就入队。直到队列为空。
三、Code(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
res = []
if not root:
return []
tmp = [root]
while tmp:
font = tmp.pop(0)
res.append(font.val)
if font.left:
tmp.append(font.left)
if font.right:
tmp.append(font.right)
return res