运用递归的思想实现起来简单很多。

二叉树的定义

1
2
3
4
5
6
struct TreeNode{
int val;
TreeNode *left,*right;
TreeNode(){}
TreeNode(int _val):val(_val),left(NULL),right(NULL){}
};

具体实现二叉树就不写了。

求二叉树的最大深度

1
2
3
4
5
6
int minDepth(TreeNode* root) {
if(!root)return 0;
if(!root->left) return 1+minDepth(root->right);
if(!root->right) return 1+minDepth(root->left);
return 1+min(minDepth(root->left),minDepth(root->right));
}