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。这一题需要注意的就是一开始的时候要判断一个根节点是不是存在。
代码:
<span style="font-family:Microsoft YaHei;font-size:14px;">class Solution {
public:
int maxDepth(TreeNode* root) {
if(root==NULL) return 0;
int a=0,b=0;
if(root->left!=NULL) a=maxDepth(root->left);
if(root->right!=NULL) b=maxDepth(root->right);
return max(a,b)+1;
}
};</span>
复杂度:因为是遍历了所有的节点,所以为O(n)。
这一题其实还可以使用层序遍历的思路,也就是非递归的方法来求解。