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.
Subscribe to see which companies asked this question.
dfs
设置两个全局变量,深度、res 注意深度的加减,
代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int depth = 0;
int max_depth = 0;
int val;
int findBottomLeftValue(TreeNode* root) {
if (root -> left == NULL && root -> right == NULL)
{
depth += 1;
if(depth > max_depth)
{
val = root -> val;
max_depth = depth;
}
depth -= 1;
return val;
}
if(root->left != NULL)
{
depth += 1;
findBottomLeftValue(root->left);
depth -= 1;
}
if(root->right != NULL)
{
depth += 1;
findBottomLeftValue(root->right);
depth -= 1;
}
return val;
}
};