题目
26年5月13日(首刷自解)
func levelOrderBottom(root *TreeNode) [][]int {
ret:=[][]int{}
if root==nil {
return nil
}
q:=[]*TreeNode{root}
for i:=0 ;len(q)>0; i++ {
p:=[]*TreeNode{}
ret=append(ret,[]int{})
for j:=0 ;j<len(q) ;j++ {
node:=q[j]
ret[i]=append(ret[i],node.Val)
if node.Left!=nil{
p=append(p,node.Left)
}
if node.Right!=nil{
p=append(p,node.Right)
}
}
q=p
}
k:=0
final:=len(ret)-1
for(k<=final){
a :=ret[k]
ret[k]=ret[final]
ret[final]=a
k++
final--
}
return ret
}
思路
这道题和102题几乎一样,只是这道题返回数组顺序不一样,最后我给他前后交换了一下位置,前面的代码可以照搬102题。
时间复杂度: O(n) 空间复杂度:O (n)