func buildTree(nums []int) *TreeNode {
if len(nums) == 0 {
return nil
}
root := &TreeNode{Val: nums[0]}
q := []*TreeNode{root} // 队列
for i := 1; i < len(nums); {
node := q[0] // 出队
q = q[1:]
if nums[i] != -1 {
node.Left = &TreeNode{Val: nums[i]}
q = append(q, node.Left)
}
i++
if i < len(nums) && nums[i] != -1 {
node.Right = &TreeNode{Val: nums[i]}
q = append(q, node.Right)
}
i++
}
return root
}
Comment