给定一个二叉树
root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
提示:
- 树中节点的数量在
[0, 104]
区间内。 -100 <= Node.val <= 100
代码:
cpp
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
int maxDepth(TreeNode* root) {
int right_depth, left_depth;
if(root == nullptr){
return 0;
}
right_depth = maxDepth(root->right) + 1;
left_depth = maxDepth(root->left) + 1;
return max(right_depth, left_depth);
}
};
解题思路:
(1)使用递归思想。
(2)分别递归左右子树,每次递归就把深度+1。
(3)最后,比较左右子树深度,输出最大值。