题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
题目链接: https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701
分析
- 将根节点压入list,每次取出list第一个TreeNode,将该TreeNode的非空左/右结点压入list;
- li存储所有压入过list的TreeNode,li即是二叉树的层次遍历序列。
参考代码
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 []
    lay=[root]
    li=[root.val]
    while(len(lay)):
        ro=lay[0]
        lay=lay[1:]
        if(ro.left):
            li.append(ro.left.val)
            lay.append(ro.left)
        if(ro.right):
            li.append(ro.right.val)
            lay.append(ro.right)
    return li
运行时间: 21ms