[Leetcode]4.II. 從上到下列印二叉樹 II
阿新 • • 發佈:2021-10-17
題目:從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印到一行。
例如:
給定二叉樹: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其層次遍歷結果:
[
[3], [9,20], [15,7] ]
思想:使用一個佇列儲存,每次遍歷佇列中的所有元素(即一層),使用temp臨時儲存子佇列,一層全部遍歷完後,陣列切換至下一行.
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func levelOrder(root *TreeNode) [][]int { var queue []*TreeNode var res [][]int if root == nil { return res } queue = append(queue,root) var i int = 0 for len(queue)!=0{ temp := []*TreeNode{} res = append(res,[]int{}) for _,v:=range queue{ res[i]=append(res[i],v.Val) if v.Left != nil{ temp = append(temp,v.Left) } if v.Right !=nil{ temp = append(temp,v.Right) } queue = queue[0:0] } i++ queue = temp } return res }
題目來源;https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/