zoukankan      html  css  js  c++  java
  • 104. 二叉树的最大深度(c++)

    给定一个二叉树,找出其最大深度。
    二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
    说明: 叶子节点是指没有子节点的节点。
    示例:    给定二叉树 [3,9,20,null,null,15,7],
        3
       /
      9  20
        / 
       15   7
    返回它的最大深度 3 。
     
     
     
    定义二叉树
    struct TreeNode{
      int val;
      TreeNode *left;
      TreeNode *right;
      TreeNode(int x) : val(x),left(NULL), right(NULL) {}
    };
    BFS
    class Solution {
    public:
        int maxDepth(TreeNode* root) {
            if(root == NULL)
                return 0;
            int num = 0;
            queue<TreeNode *> que;
            que.push(root);
            while(!que.empty()){
                int n = que.size();
                for(int i = 0;i < n;++i){
                    TreeNode *cur = que.front();
                    if(cur->left != NULL)
                        que.push(cur->left);
                    if(cur->right != NULL)
                        que.push(cur->right);
                    que.pop();
                }
                num++;
            }
            return num;
        }
    };
     
     
  • 相关阅读:
    java Math类
    JAVA Date类与Calendar类【转】
    java Runtime类
    Java System类
    java 多线程
    java 包
    Java 内部类
    java 抽象类 以及模块方法设计模式,接口
    java 单例模式
    java 关于Java中静态代码块以及构造函数的执行先后顺序
  • 原文地址:https://www.cnblogs.com/one-think/p/12492205.html
Copyright © 2011-2022 走看看