struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
int minDepth(struct TreeNode* root) {
if(root==NULL) {
return 0;
}
if(root->left==NULL&&root->right==NULL) {
return 1;
}
int rD=0;
int lD=0;
rD=minDepth(root->right);
lD=minDepth(root->left);
if(rD==0) {
return lD+1;
} else if(lD==0) {
return rD+1;
} else {
return rD>lD?(lD+1):(rD+1);
}
}
递归还是不懂啊
这边写一下
递归应该是先考虑最一般情况这边就是如果一个root为NULL那么就返回0层
root的左右节点都是NULL 就返回1
否则就进入递归了
看一个root的左右子树的高 输出低的
如果一边是NULL 就为另一边的长度 因为题目要求的应该是从根节点直接到叶节点的长度
递归是不是可以这样考虑
我先想最基本的一些情况 然后再弄一棵大树的一棵子树 并想办法不断加上去?
还要多练练