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

 104.二叉树的最大深度

递归:

public class Solution {
    public int MaxDepth(TreeNode root) {
        if(root==null)
        {
            return 0;
        }
        return 1+Math.Max(MaxDepth(root.left),MaxDepth(root.right));
    }
}

如果遇到当前节点为空就返回0,然后分别去递归节点的左右两个子树,哪个大取哪个,最后加上根节点的一个深度返回即可。

111.二叉树的最小深度

public class Solution {
    public int MinDepth(TreeNode root) {
    if(root==null)
    {
        return 0;
    }
    if(root.left==null&&root.right==null)
    {
        return 1;
    }
    if(root.left!=null&&root.right!=null)
    {
        return Math.Min(MinDepth(root.left),MinDepth(root.right))+1;
    }
    if(root.left!=null)
    {
        return MinDepth(root.left)+1;
    }
    if(root.right!=null)
    {
        return MinDepth(root.right)+1;
    }
    return 1;
    }
}

如果根节点为空,直接返回零,如果根的左右两个子树为空,就返回1,左右节点都非空,那就取左右节点递归后最小的那个值加1。左节点不为空那就递归左节点然后加1返回,同理右节点非空的时候。最后都不中就返回1。

222.完全二叉树的节点个数

public class Solution {
    public int CountNodes(TreeNode root) {
        var q=new Queue<TreeNode>();
        var sum=0;
        if(root==null)
        {
            return 0;
        }
        q.Enqueue(root);
        while(q.Count!=0)
        {
            var size=q.Count;
            sum+=q.Count;
            while(size!=0)
            {
                size--;
                var cur=q.Dequeue();
                if(cur.left!=null)
                {
                    q.Enqueue(cur.left);
                }
                if(cur.right!=null)
                {
                    q.Enqueue(cur.right);
                }
            }
        }
        return sum;
    }
}

直接用层序遍历的流程操作即可,只是在求Size的时候每次进行一个Sum+=Size的累加最终将Sum返回出去即可。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-26 04:58:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-26 04:58:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-26 04:58:01       87 阅读
  4. Python语言-面向对象

    2024-01-26 04:58:01       96 阅读

热门阅读

  1. go语言基本类型

    2024-01-26 04:58:01       51 阅读
  2. vue3-深入组件-事件

    2024-01-26 04:58:01       61 阅读
  3. 安卓之热修复的原理以及解决方案

    2024-01-26 04:58:01       54 阅读
  4. mysql学习打卡day17

    2024-01-26 04:58:01       61 阅读
  5. 微软云架构设计模式--前言

    2024-01-26 04:58:01       58 阅读
  6. @JsonFormat失效,被jackson自定义配置覆盖

    2024-01-26 04:58:01       50 阅读
  7. 深拷贝的实现方法

    2024-01-26 04:58:01       58 阅读
  8. 【Spring】@Component 和 @Configuration 对比

    2024-01-26 04:58:01       54 阅读
  9. MySQL中的DQL及执行顺序

    2024-01-26 04:58:01       57 阅读
  10. ElasticSearch介绍

    2024-01-26 04:58:01       63 阅读
  11. 2、上线过程复盘

    2024-01-26 04:58:01       56 阅读
  12. 论文写作之十个问题

    2024-01-26 04:58:01       63 阅读
  13. openssl3.2/test/certs - 042 - 3072-bit leaf key

    2024-01-26 04:58:01       52 阅读