offer_03 从尾到头打印链表

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

想法:使用双向链表


#include<stdio.h>
#include <malloc.h> 
typedef struct LinkNode{
    int data;
    struct LinkNode *front,*next;
}LinkNode,*LinkList; 

void InitList(LinkList &L,int n){//初始化链表 
    L=(LinkList)malloc(sizeof(LinkNode));
    L->next=NULL;//头结点初始化 
    L->front=NULL;
    LinkNode *p,*pre=L;
    for(int i=0;i<n;i++){
        p=(LinkList)malloc(sizeof(LinkNode));
        scanf("%d",&p->data);
        p->next=NULL;
        pre->next=p;
        p->front=pre;
        pre=pre->next;
        p=p->next;
    }
    printf("数据输入完毕!\n"); 
}

void VisitList(LinkList L){
    LinkNode *p=L->next;
    while(p->next!=NULL){
        p=p->next;
    }
    while(p!=L){
        printf("%d ",p->data);
        p=p->front;
    }
    printf("\n");
}

int main(){
    LinkList L;
    int n;
    while(~scanf("%d",&n)){
        InitList(L,n) ;
        VisitList(L);
    }
    
}



image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述: · 输入一个链表,从尾到头打印链表每个节点的值。 解题思路: 思路1: 第一反应是将链表中的指针反转,...
    FloatingIsland阅读 314评论 0 0
  • 从尾到头打印链表: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路:没啥说的,新建一个数组...
    Buyun0阅读 71评论 0 0
  • 喏,现在给你15分钟时间,你会写什么东西 出来?用手写我心啊。三不原则你也知道了。不许想,不许停,不许改。我今晚就...
    小小晴天阅读 69评论 0 0
  • 2018.4.18 瑜伽理论知识学习 瑜伽有八种常见的手印,八种手印都有很神奇的效果: 瑜伽手印: 瑜伽手印(梵...
    冰柠檬香草阅读 156评论 0 0
  • 我喜爱整洁,那种井井有条、一层不染的秩序感让我心生安宁。然而上周三,当我推开家门看到眼前这一幕时,内心居然满...
    爱笑的刘洁阅读 431评论 5 1