leetcode-111. 二叉树的最小深度
题目:
代码:
#include <iostream>
#include <cmath>
using namespace std;
typedef struct TreeNode{
int val;
struct TreeNode *left,*right;
}TreeNode,*BiTree;
void create(BiTree &T){
char ch;
cin>>ch;
if(ch=='#'){
T=NULL;
return;
}
T=new TreeNode;
T->val=ch-'0';
create(T->left);
create(T->right);
}
int minDepth(TreeNode* root) {
if(root==NULL){
return 0;
}
if(root->left==NULL && root->right==NULL){
return 1;
}
int mindepth=100000;
if(root->left){
mindepth=min(minDepth(root->left),mindepth);
}
if(root->right){
mindepth=min(minDepth(root->right),mindepth);
}
return mindepth+1;
}
int main(){
TreeNode *root;
create(root);
int res;
res=minDepth(root);
cout<<res;
return 0;
}