一、算法方案
考虑以下几种情况:
如果是空的二叉树,深度为0;
只有根节点,深度为1;
根节点只有左子树,深度为左子树的深度加1;
根节点只有右子树,深度为右子树的深度加1;
根节点既有左子树又有右子树,深度为取左右子树深度的最大者再加1。
二、代码实现
int maxDepth(struct TreeNode* root){
if (root == NULL) {
return 0;
}
int lenLeft = maxDepth(root->left) + 1;
int lenRight = maxDepth(root->right) + 1;
return lenLeft > lenRight ? lenLeft : lenRight;
}