层级遍历啊= =。。 用数组记录每一层的节点 那么。。 最后一层的第一个就是需要的左节点
func findBottomLeftValue(_ root: TreeNode?) -> Int {
var array = Array<TreeNode>()
var levArray = Array<Array<TreeNode>>()
array.append(root!)
levArray.append(array)
var count = 1
while !array.isEmpty {
let node = array.removeFirst()
count -= 1
if let left = node.left {
array.append(left)
}
if let right = node.right {
array.append(right)
}
if count == 0 {
count = array.count
if array.count > 0 {
levArray.append(array)
}
}
}
return (levArray.last?.first?.val)!
}
网友评论