力扣-二叉树-513 找二叉树左下角的值
思路
使用层序是简单的,但是使用递归需要想清楚终止条件是,在左右遍历顺序时最大深度变化的第一个值就是左下角
代码
class Solution {
public:
int maxDepth = INT_MIN;
int result;
void travel(TreeNode* node, int depth){
if(node->left == nullptr && node->right == nullptr){
if(depth > maxDepth){
result = node->val;
maxDepth = depth;
}
}
if(node->left){
depth++;
travel(node->left, depth);
depth--;
}
if(node->right){
depth++;
travel(node->right, depth);
depth--;
}
}
int findBottomLeftValue(TreeNode* root) {
travel(root, 1);
return result;
}
};