102. 二叉树的层序遍历
给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]
示例 2:
输入:root = [1]
输出:[[1]]
示例 3:
输入:root = []
输出:[]
提示:
- 树中节点数目在范围
[0, 2000]
内
-1000 <= Node.val <= 1000
一定记得函数要先判断节点是否为 nil
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
func levelOrder(root *TreeNode) [][]int { if root == nil { return [][]int{} } var stack []*TreeNode stack = append(stack, root) ans := [][]int{} for i:=0; len(stack)>0; i++ { ans = append(ans, []int{}) nextstack := []*TreeNode{} for j:=0; j<len(stack); j++ { nod := stack[j] ans[i] = append(ans[i], nod.Val) if nod.Left != nil { nextstack = append(nextstack, nod.Left) } if nod.Right != nil { nextstack = append(nextstack, nod.Right) } } stack = nextstack } return ans }
|