今天在leetcode中碰到了求二叉树的深度问题,于是总结一下这两种方法

  1. 方法一是用递归的方法,方法二是借助队列和层序遍历的思想
#include<iostream>
#include<queue>
using namespace std;
//构建二叉树
struct TreeNode
{int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x):val(x),left(NULL),right(NULL){}
};//方法一:判断树不为空就一直遍历下去
class Solution {public:int TreeDepth(TreeNode* pRoot){if(!pRoot) return 0 ;return max(1+TreeDepth(pRoot->left), 1+TreeDepth(pRoot->right));}
};
//方法二:利用层序遍历的思想,每一层都弹出队列,深度才加一
class Solution {public:int TreeDepth(TreeNode* pRoot){    if(pRoot==NULL)return 0;int depth=0;TreeNode* p1=pRoot;TreeNode* front;queue<TreeNode*> q1;q1.push(p1);while(!q1.empty()){  depth++;int size1=q1.size();int count=0;//每次弹出所有的队列元素,然后让深度加一//while(count<size1){front=q1.front();q1.pop();count++;if(front->left!=NULL){q1.push(front->left);}if(front->right!=NULL){q1.push(front->right);}}}return depth;}
};

C++求二叉树深度的两种方法相关推荐

  1. ML之xgboost:绘制xgboost的二叉树graphviz的两种方法代码实现

    ML之xgboost:绘制xgboost的二叉树graphviz的两种方法代码实现 目录 绘制xgboost的二叉树graphviz T1.采用to_graphviz法绘制树图 T2.采用plot_t ...

  2. python实现人脸口罩检测(基于opencv和深度学习两种方法)

    人脸口罩检测GUI系统(基于opencv和深度学习两种方法对比) 由于疫情的影响,人脸口罩检测系统的开发成为很多人争相开发的一种算法.很多公司或者个人都开源了他们很多的代码或者SDK.大家在GitHu ...

  3. matlab 求矩阵秩,求矩阵秩的两种方法及MATLAB的应用

    摘    要: 高等代数是一门逻辑思维比较强和理论知识比较深的学科, 它具有丰富的数学知识, 涉及许多重要的数学思想, 其在数学领域的应用很广泛, 如行列式.矩阵的相关计算和求解线性方程组的解方面的应 ...

  4. python创建树结构、求深度_Python实现二叉树的最小深度的两种方法

    找到给定二叉树的最小深度 最小深度是从根节点到最近叶子节点的最短路径上的节点数量 注意:叶子节点没有子树 Example: Given binary tree [3,9,20,null,null,15 ...

  5. 已知三点求平面的法向量 —— 两种方法

    最近学图形学时遇到了这个问题,PPT 给的大概是一个通过线性代数的方法求的,有点看不懂.加上线性代数早就忘光了,更加是一脸茫然.但是这个知识点在高中讲过,自己却怎么也记不起来了,直到今天突然记起来了, ...

  6. C++求字符串长度的两种方法

    针对于string类型的,可以采用strlen 针对于wstring类型的,可以采用_tcslen方法 实例代码: //字符串测试Unicode和ansi void strControl() {std ...

  7. 求互质数对的两种方法:欧拉函数和容斥原理

    1.HDU4135 首先,我们可以先求出1 ~ a - 1内与n互质的数,再求出1 ~ b内与n互质的数.最后利用前缀和算出来即可. #include <iostream> #includ ...

  8. C语言-求阶乘和的两种方法

    目录 方法一:递归法 方法二:循环法 fun.c文件 fun.h文件 main.c文件 方法一:递归法 /** 递归法 求阶乘和**/ long Factorial_sum_way1(int m){i ...

  9. 求二叉树深度算法(深度优先、广度优先)

    求二叉树深度的算法 求二叉树深度 方法一:深度优先的遍历方式 方法二:广度优先的遍历方式 总结 求二叉树深度 注:本文中二叉树通过二叉链表构建. 节点类型定义如下: struct node{char ...

最新文章

  1. java datasource mysql_Java MysqlDataSource類代碼示例
  2. win8安装11gR2[INS-13001] 环境不满足最低要求
  3. AjaxPro.2.dll在VS2005使用中的基本使用
  4. JAVA try...catch...finally中的执行顺序和return语句
  5. “5G+AI”到底有啥用?这篇漫画告诉你答案…
  6. 解构设计!网格表现Logo设计
  7. 专题一:MATLAB基础知识
  8. 10.7 a.m.小结
  9. 2008服务器系统开启ftp,win 2008服务器开启FTP功能
  10. 适用于开发者的开源分布式即时通讯系统
  11. 《硅谷增长黑客实战笔记》读书笔记(一)
  12. 为什么普通人做量化交易会亏钱?
  13. JAVA删除数组中指定元素
  14. 【go】ssa和调用链分析
  15. source not found解决方法(亲测)
  16. 数仓存在的意义价值及分层的好处
  17. 童年记忆中的水果罐头
  18. springboot毕设项目在线智能办公系统bxl9i(java+VUE+Mybatis+Maven+Mysql)
  19. 【078期】java.util.* 并发包下 LongAdder 和 AtomicLong 哪个性能更好,为什么?
  20. android 仿微信顶部消息 展示

热门文章

  1. 最大流最小割经典例题_最大流, 最小割问题及算法实现
  2. 网站概况分析可以认为是网站的“五官”检测
  3. PointNet理解(PointNet实现第4步)
  4. redis核心知识点总结(超详细)
  5. Linux 系统安全相关
  6. SycoTec机床铣削动力头车铣主轴创新集成技术方案
  7. 软件测试能做到多少岁?
  8. 第六课 背景与渐变
  9. 牛客 SQL:获取每个部门中当前员工薪水最高的相关信息
  10. 判断完全二叉树及求二叉树深度完整代码