代码随想录算法训练营第十六天| 104. 二叉树的最大深度 111. 二叉树的最小深度 222. 完全二叉树的节点个数

104. 二叉树的最大深度
https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/

public int maxDepth(TreeNode root) {
        return max(root);
    }
    public int max(TreeNode node){
        if (node == null) return 0;
        int left = max(node.left);
        int right = max(node.right);
        return Math.max(left,right) + 1;
    }

总结:后序遍历
111. 二叉树的最小深度
https://leetcode.cn/problems/minimum-depth-of-binary-tree/description/

public int minDepth(TreeNode root) {
        if (root == null) return 0;
        Deque<TreeNode> deque = new ArrayDeque<>();
        deque.offer(root);
        int minDepth = 0;
        while (!deque.isEmpty()){
            minDepth++;
            int len = deque.size();
            for (int i = 0; i < len; i++) {
                TreeNode node = deque.poll();
                if (node.left == null && node.right == null){
                    return minDepth;
                }
                if (node.left != null) deque.offer(node.left);
                if (node.right != null) deque.offer(node.right);
            }
        }
        return 0;
    }

总结:层序遍历模版
222. 完全二叉树的节点个数
https://leetcode.cn/problems/count-complete-tree-nodes/description/

public int countNodes(TreeNode root) {
        if (root == null) return 0;
        int left = countNodes(root.left);
        int right = countNodes(root.right);
        return left + right + 1;
    }
posted @   jeasonGo  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示