标签:
思路:利用栈的来实现,而递归本质上就是一个栈结构
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 /* 5 剑指offer 6 Pro5 反转链表输出 7 xsfelvis 8 */ 9 //定义链表的结构类型 10 typedef struct LNode 11 { 12 int data; 13 struct LNode *next; 14 } *Linklist,LNode; 15 16 //打印链表函数 17 void PrintLinkList(Linklist p) 18 { 19 if(!p) 20 return ; 21 if(p) 22 { 23 PrintLinkList(p->next); 24 } 25 printf("%d ",p->data); 26 27 } 28 int main(int argc,char *argv[]) 29 { 30 int data; 31 //开辟一个节点 32 Linklist L =(Linklist)malloc(sizeof(LNode)); 33 L->next = NULL; 34 printf("请输入一组数据,-1表示输入结束\n"); 35 //标记指针 36 Linklist p ; 37 p = L; 38 scanf("%d",&data); 39 while(data!=-1) 40 { 41 42 //尾插法建立链表 43 Linklist m =(Linklist)malloc(sizeof(LNode)); 44 m->data = data; 45 m->next = p->next; 46 p->next = m; 47 p = m; 48 scanf("%d",&data); 49 } 50 51 PrintLinkList(L->next); 52 return 0; 53 54 }
标签:
原文地址:http://www.cnblogs.com/xsfelvis/p/4394623.html