JZ60 把二叉樹打印成多行

把二叉樹打印成多行

從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。

 

func Print(root *TreeNode) [][]int {
    if root == nil {
        return [][]int{}
    }
    queue := []*TreeNode{root}
    res := [][]int{}
    
    for len(queue) != 0 {
        curRes := []int{}
        newQueue := []*TreeNode{}
        
        for _, node := range queue {
            curRes = append(curRes, node.Val)
            if node.Left != nil {
                newQueue = append(newQueue, node.Left)
            }
            if node.Right != nil {
                newQueue = append(newQueue, node.Right)
            }
        }
        
        res = append(res, curRes) 
        queue = newQueue
    }
    
    return res
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章