题目原址
https://leetcode.com/problems/find-bottom-left-tree-value/description/
题目描述
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.
给定一个二叉树,返回这棵树中深度最大的一行中最左边的树的值
解题思路
使用递归实现
如果当前的节点的深度大于之前的节点深度,则将当前的节点放入node中。node为一个有两个元素的数组,数组的第一个元素为树的节点值,第二个元素为当前节点的深度。
AC代码
class Solution {
public int findBottomLeftValue(TreeNode root) {
return find(root, 1, new int[]{0,0});
}
private int find(TreeNode root, int depth, int[] node) {
if(node[1] < depth) {
node[0] = root.val;
node[1] = depth;
}
if(root.left != null)
find(root.left, depth + 1, node);
if(root.right != null)
find(root.right, depth + 1, node);
return node[0];
}
}