剑指offer面试题5 从头到尾打印链表(c)

剑指offer面试题5 从头到尾打印链表(c)

思路:利用栈的来实现,而递归本质上就是一个栈结构

 #include <stdio.h>
 #include <stdlib.h>

 /*
 剑指offer
 Pro5 反转链表输出
 xsfelvis
 */
 //定义链表的结构类型
 typedef struct LNode
 {
     int data;
     struct LNode *next;
 } *Linklist,LNode;

 //打印链表函数
 void PrintLinkList(Linklist p)
 {
     if(!p)
         return ;
     if(p)
     {
         PrintLinkList(p->next);
     }
       printf("%d ",p->data);

 }
 int main(int argc,char *argv[])
 {
     int data;
     //开辟一个节点
     Linklist L =(Linklist)malloc(sizeof(LNode));
     L->next = NULL;
     printf("请输入一组数据,-1表示输入结束\n");
     //标记指针
     Linklist p ;
     p = L;
     scanf("%d",&data);
     )
     {

         //尾插法建立链表
         Linklist m =(Linklist)malloc(sizeof(LNode));
         m->data = data;
         m->next = p->next;
         p->next = m;
         p = m;
         scanf("%d",&data);
     }

     PrintLinkList(L->next);
     ;

 }
上一篇:剑指Offer - 九度1505 - 两个链表的第一个公共结点


下一篇:How to Use Android ADB Command Line Tool