513. 找树左下角的值-day14

题目:513. 找树左下角的值
题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/description/
思路:理解题目最大深度,最左侧结点的值
遍历规则:采用深度优先遍历(DFS)+ 先左后右的顺序,优先遍历左子树再遍历右子树,保证「同深度下左叶子节点先被访问」;
深度跟踪:用全局变量记录遍历过程中的「最大深度」,只有遇到更深层的叶子节点时,才更新结果值;
结果更新:初始值为根节点值,遍历中若发现深度大于当前最大深度的叶子节点,立即更新结果为该节点值(因先左后右,同深度下左叶子会先覆盖,右叶子不会替换);
递归终止:空节点直接返回,叶子节点触发深度判断和结果更新逻辑
代码:

点击查看代码
class Solution {
    private int Deep=-1;
    private int value=0;
    public int findBottomLeftValue(TreeNode root) {
        value=root.val;
        findLeftValue(root,0);
        return value;
    }
    private void findLeftValue(TreeNode root,int deep){
        if(root==null) return;
        if(root.left==null && root.right==null){
            if(deep>Deep){
                value=root.val;
                Deep=deep;
            }
        }
        if(root.left!=null) findLeftValue(root.left,deep+1);
        if(root.right!=null) findLeftValue(root.right,deep+1);
    }
}
posted @ 2026-02-02 21:37  whq001  阅读(2)  评论(0)    收藏  举报