102. 二叉树的层序遍历

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func levelOrder(root *TreeNode) [][]int {
    if root == nil {
        return nil
    }
    res := [][]int{}
    queue := []*TreeNode{root}
    for len(queue)>0 {
        sz := len(queue)
        tmp := []int{}
        for i:=0; i<sz; i++ {
            node := queue[0]
            tmp = append(tmp, node.Val)
            queue = queue[1:]
            if node.Left != nil {
                queue = append(queue, node.Left)
            }
            if node.Right != nil {
                queue = append(queue, node.Right)
            }
        }
        res = append(res, tmp)
    }
    return res
}
posted @ 2024-06-12 10:26  gdut17_2  阅读(19)  评论(0)    收藏  举报