代码随想录算法训练营第16天 | 二叉树更加进阶

2024年7月18日

用层序遍历巧解
题513. 找树左下角的值
层序遍历的板子一定要熟背。

class Solution {
    public int findBottomLeftValue(TreeNode root) {
        List<List<Integer>> res = new ArrayList<>();
        //用根左右遍历,每次记录高度
        int height=0;
        res = digui(res,height,root);
        return res.get(res.size()-1).get(0);
    }

    public List<List<Integer>> digui(List<List<Integer>> res,int height,TreeNode p){
        if(res.size()<height+1){
            List<Integer> res1 = new ArrayList<>();
            res.add(res1);
        }
        int val = p.val;
        res.get(height).add(val);
        if(p.left!=null){
            res = digui(res,height+1,p.left);
        }
        if(p.right!=null){
            res = digui(res,height+1,p.right);
        }
        return res;
    }
}
posted @ 2024-07-21 18:08  hailicy  阅读(1)  评论(0编辑  收藏  举报