Maximum Depth of Binary Tree(二叉树最大深度)
【难度:Easy】
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.
给定一个二叉树,求该树最大深度。
树的最大深度指从根节点往下到最远的叶子节点所形成的路径的节点个数。
解题思路:
根据树的结构特点,将其分为左子树和右子树两部分,根据递归先序遍历的思想将大问题转化为小问题,左右子树中深度最大的一棵即为该树结构的深度。
代码
C++代码如下:
/**
* 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) {
int max = 0;
if (root != NULL) {
max++;
int max_left = maxDepth(root->left);
int max_right = maxDepth(root->right);
max += max_left>max_right ? max_left:max_right;
}
return max;
}
};