513. Find Bottom Left Tree Value

Medium
Given the root of a binary tree, return the leftmost value in the last row of the tree.
Example 1:
​
​
Input: root = [2,1,3]
Output: 1
Example 2:
​
​
Input: root = [1,2,3,4,null,5,6,null,null,7]
Output: 7
Constraints:
  • The number of nodes in the tree is in the range [1, 10^4].
  • -2^31 <= Node.val <= 2^31 - 1

解題

Runtime: 0 ms, faster than 100%
Memory Usage: 5.1 MB, less than 100%
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func findBottomLeftValue(root *TreeNode) int {
ans := root.Val
depth := 0 // 紀錄答案的深度
​
var helper func(*TreeNode, int)
helper = func(node *TreeNode, dep int) {
if node == nil { return }
​
if dep > depth {
ans = node.Val
depth = dep
}
​
helper(node.Left, dep + 1) // 每次都先遍歷左邊,答案才會是最左邊的節點
helper(node.Right, dep + 1)
}
​
helper(root, 0)
​
return ans
}