1、递归-DFS
如果root == NULL,即空树,就返回0。
求二叉树的最大深度,可以分成求左子树和右子树的最大深度,最终结果就是MAX{ max_left,max_right} +1,即大的那个再加上根节点的1深度。
同样,求左子树和右子树的最大深度,也可以分解为 根 + MAX{左子树,右子树}。
代码如下:
int maxDepth(struct TreeNode* root) {
if(root == NULL)
return 0;
int leftHeight = maxDepth(root->left);
int rightHeight = maxDepth(root->right);
return leftHeight > rightHeight ? leftHeight + 1 : rightHeight + 1;
}