代码随想录算法训练营 | 博客打卡
题目链接:leetcode 513. 找树左下角的值
注:仅为个人笔记,难以细致且通俗。
func findBottomLeftValue(root *TreeNode) int {
var res int
var depth int
var traversal func(*TreeNode, int)
traversal = func(node *TreeNode, d int) {
if node == nil {
return
}
if node.Left == nil && node.Right == nil {
if depth < d {
depth = d
res = node.Val
}
}
traversal(node.Left, d+1)
traversal(node.Right, d+1)
return
}
traversal(root, 1)
return res
}
优先往左子树递进,要注意这里说的最左边的可不一定是树的左下角,这里左下角的意思是,最后一行的最左边。(有时候做 leetcode 感觉是在做阅读理解)
比如 9 再怎么看都不是左边,但它就是要找的对象。
最后一行,深度最大,所以找到深度最大的那一行就行了。