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

深度搜索分两种:递归(使用栈)

广度搜索:非递归(使用队列)

1. 广度搜索bfs:(标准模板)(也可建议用c++的queue,deque是双端队列,可以实现头尾的插入和弹出)

 1 /**
2 * Definition for a binary tree node.
3 * struct TreeNode {
4 * int val;
5 * TreeNode *left;
6 * TreeNode *right;
7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
8 * };
9 */
10 class Solution {
11 public:
12 int maxDepth(TreeNode* root) {
13 deque<TreeNode*> d;
14 if(!root)
15 return 0;
16 d.push_back(root);
17 int num = 0;
18 while(!d.empty())
19 {
20 int t = d.size();
21 //cout<<"t:"<<t<<endl;
22 for(int i=0;i<t;i++)
23 {
24 TreeNode *p = d.front();
25 d.pop_front();
26 if(p->left)
27 d.push_back(p->left);
28 if(p->right)
29 d.push_back(p->right);
30 }
31 num++;
32 }
33 return num;
34 }
35 };

2. 深搜,递归

 1 /**
2 * Definition for a binary tree node.
3 * struct TreeNode {
4 * int val;
5 * TreeNode *left;
6 * TreeNode *right;
7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
8 * };
9 */
10 class Solution {
11 public:
12 int maxDepth(TreeNode* root) {
13 if(!root)
14 return 0;
15
16 return max(maxDepth(root->left), maxDepth(root->right)) +1;
17 }
18 };

最新文章

  1. MySQL的基本知识 -- 命令
  2. VS2012 error C2664: “std::make_pair”:无法将左值绑定到右值引用
  3. Validform —— 再也不用担心“表单验证”!
  4. 【Git】安装以及第一次使用Git和GitHub傻瓜教程
  5. MyBatis魔法堂:ResultMap详解
  6. JavaScript中两个感叹号(!!)的作用是什么?
  7. HDOJ 1062 Text Reverse
  8. 130道ASP.NET面试题
  9. 实例源码--Android底部功能分类Tab使用实例
  10. Mac - 更新 Ruby
  11. Svn忽略配置
  12. SQL Server不区分大小写的问题
  13. appcan里面模板的使用
  14. java变量和数据类型总结
  15. conky 1.10以后的新配置格式
  16. .NET MD5 加密
  17. webpack4与babel配合使es6代码可运行于低版本浏览器
  18. MySQL数据库详解之&quot;双1设置&quot;的数据安全的关键参数案例分享
  19. SVG绘制太极图
  20. Android 二维码扫描/生成

热门文章

  1. centos使用U盘做启动盘
  2. Java并发编程 - Runnbale、Future、Callable 你不知道的那点事(一)
  3. Spring MVC——项目的开发流程
  4. 【网鼎杯2020朱雀组】Web WriteUp
  5. linux学习笔记全-如何学习linux?
  6. [python应用]python简单图片抓取
  7. bWAPP----HTML Injection - Stored (Blog)
  8. FL Studio采样设置之时间拉伸栏
  9. 在CorelDRAW中如何完成属性的复制
  10. FL Slayer合成器功能之顶部组件介绍