写一个从树的根结点到叶子结点最短路径的C++代码
时间: 2023-06-06 22:05:11 浏览: 56
以下是从根节点到叶节点的最短路径的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node{
int data;
struct Node* left;
struct Node* right;
};
struct Node* createNode(int data){
struct Node* node=(struct Node*)malloc(sizeof(struct Node));
node->data=data;
node->left=NULL;
node->right=NULL;
return node;
}
int min(int a, int b){
return a<b?a:b;
}
int findMinDepth(struct Node* node){
if(node==NULL){
return 0;
}
if(node->left==NULL && node->right==NULL){
return 1;
}
if(node->left==NULL){
return findMinDepth(node->right)+1;
}
if(node->right==NULL){
return findMinDepth(node->left)+1;
}
return min(findMinDepth(node->left),findMinDepth(node->right))+1;
}
int main(){
struct Node* root=createNode(1);
root->left=createNode(2);
root->right=createNode(3);
root->left->left=createNode(4);
root->left->right=createNode(5);
printf("The minimum depth of the tree:%d\n",findMinDepth(root));
return 0;
}
```
请注意,这只是一个简单的示例,用于说明如何从根节点到叶子节点查找最短路径。实际上,这个问题有很多变体,具体取决于树的结构和要求的定义。