面试题32.1:从上到下打印二叉树
2019-01-09 本文已影响0人
凌霄文强
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
知识点
二叉树,队列
Qiang的思路
这道题说白了就是一个层次遍历,或者说是图的广度优先遍历的问题,那么就需要一个队列将待遍历的元素存储下来,然后对其按照先进先出的原则进行遍历,同时将其孩子节点按照先左后右的顺序进行入队,按照这个顺序便能够实现一个二叉树的层次遍历了。
# -*- 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 root == None:
return []
res=[]
l=[root]
while len(l)!=0:
n=l.pop(0)
res.append(n.val)
if n.left!=None:
l.append(n.left)
if n.right!=None:
l.append(n.right)
return res
作者原创,如需转载及其他问题请邮箱联系:lwqiang_chn@163.com。
个人网站:https://www.myqiang.top。