Given a binary tree, find the leftmost value in the last row of the tree.
Example 1:
Input:
2
/ \
1 3
Output:
1
Example 2:
Input:
1
/ \
2 3
/ / \
4 5 6
/
7
Output:
7
Note: You may assume the tree (i.e., the given root node) is not NULL.
注意:!!!
是求 最後一層最左邊的元素的val
//Definition for a binary tree node.
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class Solution {
int ans=0, h=0;
public int findBottomLeftValue(TreeNode root) {
findBottomLeftValue(root, 1);
return ans;
}
public void findBottomLeftValue(TreeNode root, int depth) {
//初始化的時候h=0 此時爲根結點 h爲1
if (h<depth) {ans=root.val;h=depth;}
/**
* 遞歸 直到Find The Ans
*/
//如果root的左孩子不爲空 遞歸 根結點變爲左孩子 深度加1
if (root.left!=null) findBottomLeftValue(root.left, depth+1);
if (root.right!=null) findBottomLeftValue(root.right, depth+1);
}
}