递归逆序打印单链表(c实现)
2015-01-05 22:55
239 查看
递归逆序打印单链表。交换打印语句和递归调用的顺序,可以实现顺序打印和逆序打印链表。
#include <stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node *next; }Node ; Node *create_list(int *arr,const int len) { if(arr==NULL||len<=0) { return NULL; } Node *head = (Node*)malloc(sizeof(Node)); head->data = arr[0]; Node *p,*q = head; for(int i=1;i<len;i++) { p = (Node*)malloc(sizeof(Node)); p->data = arr[i]; q->next = p; q = p; } q->next = NULL; return head; } void rprint(Node *head) { if(head==NULL) { return ; } else { rprint(head->next); printf("%d ",head->data); } } void print(Node *head) { Node *p = head; while(p!=NULL) { fprintf(stdout,"%d ",p->data); p = p->next; } } int main(void) { int a[] = {1,2,3,4,5,6,7,8,9}; const int len = sizeof(a)/sizeof(int); Node *head = create_list(a,len); print(head); printf("\n"); rprint(head); return 0; }
相关文章推荐
- 逆序打印整数,要求递归实现
- 程序员面试100题(算法)之递归逆序打印单链表、字符串(同时求字符串长度)
- 单链表的逆序实现,递归和非递归算法
- 在VS和Linux下逆序打印单链表(递归和非递归)
- 单链表逆序———不借助外部辅助空间递归与非递归实现
- [阿里]逆序打印整数,要求递归实现
- 采用递归逆序打印单链表(递归出口的三种写法)
- 链表面试题--两种方法逆序打印单链表(栈和递归)
- 递归实现倒序打印
- 反转一个单链表,分别以迭代和递归的形式来实现
- 打印给定一字符串的所有字母组合——递归实现
- 利用一个简单的递归实现打印目录的层次结构
- 【数据结构】递归实现链表逆序
- 用递归实现倒序打印
- 递归实现字符串逆序输出(c++和c)
- 反转一个单链表,迭代和递归实现
- python打印出指定目录下的所有文件夹和文件名(递归实现)
- 程序员面试宝典之数据结构基础---⑤单链表逆序的递归与非递归实现
- 用堆栈和用递归分别实现倒序打印
- 程序员面试宝典之数据结构基础----单链表的逆序打印