?104. Maximum Depth of Binary Tree(C++)
来源:互联网 发布:耳机线材淘宝 编辑:程序博客网 时间:2024/06/17 12:21
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
代码1:Depth-first-search(DFS)递归
class Solution {public: int maxDepth(TreeNode* root) { return root == NULL ? 0 : max(maxDepth(root -> left), maxDepth(root -> right)) + 1; }};
代码2:Depth-first-search(DFS)非递归,用栈实现
// 为什么不对呢???class Solution {public: int maxDepth(TreeNode* root) { if (root == NULL) return 0; int res = 0; stack<TreeNode*> s; // stack 模板类 s.push(root); while (!s.empty()) { ++ res; for (int i = 0, n = s.size(); i < n; ++ i) { TreeNode* p = s.top(); s.pop(); if (p -> left != NULL) s.push(p -> left); if (p -> right != NULL) s.push(p -> right); } } return res; }};
代码3:Breadth-first-search(BFS)非递归用队列
class Solution {public: int maxDepth(TreeNode* root) { if (root == NULL) return 0; int res = 0; queue<TreeNode*> q; // queue 模板类 q.push(root); while (!q.empty()) { ++ res; // 问:q不是空的吗,只放进去了一个跟节点就知道了q的所有节点个数??? for (int i = 0, n = q.size(); i < n; ++ i) { TreeNode* p = q.front(); q.pop(); if (p -> left != NULL) q.push(p -> left); if (p -> right != NULL) q.push(p -> right); } } return res; }};
关于代码2、3的补充:
使用标准库的栈和队列时,先包含相关的头文件
#include<stack>#include<queue>// 定义栈如下:stack<int> s;// 定义队列如下:queue<int> q;
栈提供了如下的操作:
s.empty() 如果栈为空返回true,否则返回false s.size() 返回栈中元素的个数 s.pop() 删除栈顶元素但不返回其值 s.top() 返回栈顶的元素,但不删除该元素 s.push() 在栈顶压入新元素
队列提供了下面的操作:
q.empty() 如果队列为空返回true,否则返回false q.size() 返回队列中元素的个数 q.pop() 删除队列首元素但不返回其值 q.front() 返回队首元素的值,但不删除该元素 q.push() 在队尾压入新元素 q.back() 返回队列尾元素的值,但不删除该元素
阅读全文
0 0
- ?104. Maximum Depth of Binary Tree(C++)
- [C]LeetCode:Maximum Depth of Binary Tree
- LeetCode 104. Maximum Depth of Binary Tree C语言
- Leetcode-104. Maximum Depth of Binary Tree c语言
- LeetCode 104. Maximum Depth of Binary Tree 题解(C++)
- 104. Maximum Depth of Binary Tree(C语言)
- LeetCode 104. Maximum Depth of Binary Tree (C++)
- [LeetCode] [C] 104. Maximum Depth of Binary Tree
- [LeetCode]104.Maximum Depth of Binary Tree
- 104.Maximum Depth of Binary Tree
- 【LeetCode】104.Maximum Depth of Binary Tree
- [Leetcode] 104. Maximum Depth of Binary Tree
- LeetCode --- 104. Maximum Depth of Binary Tree
- LeetCode 104. Maximum Depth of Binary Tree
- 104.Maximum Depth of Binary Tree
- 104. Maximum Depth of Binary Tree
- 104.Maximum Depth of Binary Tree
- 104. Maximum Depth of Binary Tree
- 旅游类APP-Android模块分析
- DB modeling-DB Schema
- xamarin android使用zxing扫描二维码
- java开发图片水印
- 170706 逆向-南邮CTF平台(1-3)
- ?104. Maximum Depth of Binary Tree(C++)
- structs2的一些理解
- mysql安装教程
- Linux下解决mysqld.cnf配置文件只读而无法修改
- CentOS使用systemd设置Tomcat自启动
- (bzoj 1066 [SCOI2007]蜥蜴)<网络最大流>
- java log4j日志使用
- Collections.synchronizedMap(map)
- 179. Largest Number