[Leetcode]3.I. 从上到下打印二叉树
题目:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例:
给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回:[3,9,20,15,7]
算法思想:使用一个队列来保存遍历到的结点,队列的实现方法是每次遍历都将头结点读取后剔除出数组,将该结点的值存入一个用于存储结果的数组中,并将该结点的左右子结点(如果有)放入数组中.直到数组为空结束.
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) []int {
var r []int
var k []*TreeNode
k = append(k,root)
var node *TreeNode
for len(k)!=0{
node = k[0]
k = k[1:]
if node != nil{
r = append(r,node.Val)
if node.Left!=nil{
k = append(k,node.Left)
}
if node.Right!=nil{
k = append(k,node.Right)
}
}
}
return r
}
题目来源:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/

浙公网安备 33010602011771号