Maximum Depth of Binary Tree
2015-07-31 15:58
381 查看
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.
Analyse: The same as Minimum Depth of Binary Tree.
1. Recursion
Runtime: 8ms.
2. Iteration: Compute the number of level. Initialize the level to be 0, after dealing with the current level, then level++.
Runtime: 8ms.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Analyse: The same as Minimum Depth of Binary Tree.
1. Recursion
Runtime: 8ms.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int maxDepth(TreeNode* root) { if(!root) return 0; int leftDepth = maxDepth(root->left); int rightDepth = maxDepth(root->right); if(leftDepth == 0 && rightDepth == 0) return 1; if(leftDepth == 0) leftDepth = INT_MIN; if(rightDepth == 0) rightDepth = INT_MIN; return 1 + max(leftDepth, rightDepth); } };
2. Iteration: Compute the number of level. Initialize the level to be 0, after dealing with the current level, then level++.
Runtime: 8ms.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int maxDepth(TreeNode* root) { if(!root) return 0; queue<TreeNode* > qu; qu.push(root); int level = 0; while(!qu.empty()){ int n = qu.size(); while(n--){ TreeNode* current = qu.front(); qu.pop(); if(current->left) qu.push(current->left); if(current->right) qu.push(current->right); } level++; } return level; } };
相关文章推荐
- (LeetCode)Implement strStr()
- Webx autoconfig 多环境打包 使用总结
- 高质量JAVA代码编写规范
- 判别同位词算法
- UVA 657 The die is cast
- iOS 浏览器或应用中启动应用
- 设置EditText光标的位置
- 判别同位词算法
- SQL server 那些数据类型不能作为索引
- Javascript-动态操作分类信息2
- 将Python代码嵌入C++程序进行编写的实例
- BZOJ 1176: [Balkan2007]Mokia CDQ分治
- PAT (Advanced Level) 1094. The Largest Generation (25) 人数最多的一代,BFS
- 一位项目经理的一些个人体会
- HDOJ 5334 Virtual Participation
- Android Animation动画(很详细)
- std::thread and std::mutex
- java缓存(1、概述)
- inline函数的作用
- 设计模式 观察者模式