您的位置:首页 > 其它

利用递归查找链表中与数据成员值与形参n相同的结点

2016-10-07 19:01 253 查看
#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
int date;
struct node *next;
}node;
int n=0;
node * Creatlink(struct node * tp,int k);
node * find_nodes(struct node * tp,int k);
int main()
{
int tmp;
struct node * head=NULL, *tail=NULL;
head=Creatlink(tail,6);
if (tail == NULL) {
puts("NULL1");
}
tail=find_nodes(head,3);
if (tail == NULL) {
puts("NULL2");
}
printf("%d\n",tail->date);
return 0;
}

node * Creatlink(struct node * tp,int k)
{
if(k==0)
return NULL;
else{
tp=(struct node *)malloc(sizeof(node));
tp->date=k;
tp->next=Creatlink(tp->next,k-1);
}
return tp;
}
node * find_nodes(struct node * tp,int k)
{
struct node * tmp;
if(tp==NULL)
return NULL;
if(tp->date == k)
return tp;
tmp=find_nodes(tp->next,k);
if(tmp==NULL)
return NULL;
if(tmp)
return tmp;
return find_nodes(tp->next->next,k);
}
这根本不是一个好的代码,思路不清晰,代码不简洁

node * find_nodes(struct node * tp,int k)
{
if(tp){
if(tp->date == k)
return tp;
else
return find_nodes(tp->next,k); //这里的这个return最好还是写上
}
else
NULL;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: