題目簡述:
求給定二叉樹的最大深度,
最大深度是指樹的根結點到最遠葉子結點的最長路徑上結點的數量。
示例1
輸入
{1,2}
輸出
2
示例2
輸入
{1,2,3,4,#,#,5}
輸出
3
解題思路:求二叉樹的最大深度,我們可以採用遞歸的思想,比較左子樹和右子樹的深度,誰的深度大就取誰。邊界就是最後的葉子結點,所以代碼如下
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode類
* @return int整型
*/
int maxDepth(TreeNode* root) {
// write code here
//遞歸的思路解題
if(root==NULL)
{
return 0;
}
int leftnum=maxDepth(root->left);
int rightnum=maxDepth(root->right);
if(leftnum>rightnum)
{
return leftnum+1;
}
return rightnum+1;
}
};