《剑指Offer》刷题之从上往下打印二叉树
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。 - 示例:
示例 1 :
输入:{5,4,#,3,#,2,#,1}
返回值:[5,4,3,2,1]
- 代码1:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def PrintFromTopToBottom(self, root):
if not root: return []
a, result = [root], []
while a:
temp = a.pop(0)
result.append(temp.val)
if temp.left: a.append(temp.left)
if temp.right: a.append(temp.right)
return result
- 算法说明:
建立两个队列,a
存放节点,result
存放值;
将根节点加入到队列a
中,遍历队列元素;
访问左右节点,将左右子节点加入到队列a
中;
直到遍历完所有的节点,返回结果。