剑指 Offer 32 - I. 从上到下打印二叉树
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) []int {
treenums := []int{}
//一、处理例外情况
if root == nil{
return nil
}
//二、构造根节点入队队列,根节点先入队,处理完出队,左右子节点入队,处理完出队,如此循环往复
var queue []*TreeNode
queue = append(queue,root)
//三、循环退出条件,当队列为空
for len(queue)> 0{
//从队列取出来一个节点
node := queue[0]
treenums = append(treenums,node.Val)
if node.Left != nil{
queue = append(queue,node.Left)
}
if node.Right != nil{
queue = append(queue,node.Right)
}
queue = queue[1:]
}
return treenums
}