- 题目
- 思路
- 代码
层级遍历嘛,要是用 C++ 好写。 Go 没有队列,只能用切片模拟一下了。
每次遍历切片的每个元素,并将他的两个子节点入切片,len(q)会自增长度,让循环继续下去。达到遍历每个元素的目的。
模拟队列很巧妙。
代码
func levelOrder(root *TreeNode) (res []int) {
if root == nil {
return
}
q := []*TreeNode{root}
for i := 0 ; i < len(q) ; i++ {
node := q[i]
res = append(res, node.Val)
if node.Left != nil {
q = append(q, node.Left)
}
if node.Right != nil {
q = append(q, node.Right)
}
}
return
}



