Lintcode---二叉树的最大深度
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的距离。
样例
给出一棵如下的二叉树:
1
/ \
2 3
/ \
4 5
这个二叉树的最大深度为3
.
思路:与二叉树最小深度思路一样,一次AC;
这种容易题目要很熟练,主要是思路要清晰。
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { public: /** * @param root: The root of binary tree. * @return: An integer */ /* 思路:与二叉树最小深度思路一样,一次AC; 这种容易题目要很熟练。 */ int maxDepth(TreeNode *root) { // write your code here if(root==NULL){ return 0; } if(root->left==NULL){ return maxDepth(root->right)+1; } if(root->right==NULL){ return maxDepth(root->left)+1; } return max(maxDepth(root->left),maxDepth(root->right))+1; } };
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { public: /** * @param root: The root of binary tree. * @return: An integer */ int maxDepth(TreeNode * root) { // write your code here if(root==NULL){ return 0; } // 分治递归的思想; int left = maxDepth(root->left); int right = maxDepth(root->right); return left>right? left+1:right+1; } };