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

来源:互联网 发布:红外透视镜软件下载 编辑:程序博客网 时间:2024/06/05 17:29
#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;elsereturn find_nodes(tp->next,k); //这里的这个return最好还是写上 }elseNULL; } 

0 0
原创粉丝点击