https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回它的最大深度 3 。
解题关键:明白二叉树基本操作。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int maxDepth(struct TreeNode* root) {
if(root==NULL) return 0;
else return maxDepth(root->left)>maxDepth(root->right)? maxDepth(root->left)+1:maxDepth(root->right)+1;
}//超时代码
改进:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int maxDepth(struct TreeNode* root) {
int x,HL,HR;
if(root==NULL) return 0;
HL = maxDepth(root->left);
HR = maxDepth(root->right);
x = HL>HR?HL:HR;
return x;
}//36ms