题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
牛客网:链接
一定要弄清楚终止条件,否则很容易陷入死循环。
在遍历的时候可以判断元素是否在二叉树内。
# -*- 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 []
result = []
res = [root]
'''必须有终止条件 否则会陷入死循环'''
while res:
cur = res.pop(0)
result.append(cur.val)
if cur.left:
res.append(cur.left)
if cur.right:
res.append(cur.right)
return result