实验11-2-3 逆序数据建立链表 (20 分)

实验11-2-3 逆序数据建立链表 (20 分)

本题要求实现一个函数,按输入数据的逆序建立一个链表。

函数接口定义:
struct ListNode *createlist();

函数createlist利用scanf从输入中获取一系列正整数,当读到−1时表示输入结束。按输入数据的逆序建立一个链表,并返回链表头指针。链表节点结构定义如下:

struct ListNode {

int data;

struct ListNode *next;

};

裁判测试程序样例:

#include <stdio.h>

#include <stdlib.h>

struct ListNode {

int data;

struct ListNode *next;

};

struct ListNode *createlist();

int main()

{

struct ListNode *p, *head = NULL;

复制代码
head = createlist();
for ( p = head; p != NULL; p = p->next )
    printf("%d ", p->data);
printf("\n");

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:

1 2 3 4 5 6 7 -1

输出样例:

7 6 5 4 3 2 1

复制代码
struct ListNode *createlist()
{
  int num;
  struct ListNode *ptr=NULL,*head=NULL,*tail=NULL;
  scanf("%d",&num);
  while(num!=-1)
  {
    ptr=(struct ListNode *)malloc(sizeof(struct ListNode));
    ptr->data=num;
    ptr->next=head;
    head=ptr;
    scanf("%d",&num);
  }
  return head;
} 
相关推荐
李余博睿(新疆)10 小时前
c++经典练习题-分支练习(1)
数据结构·c++·算法
自然常数e11 小时前
深入理解指针(7)
c语言·数据结构·算法·visual studio
古城小栈11 小时前
Go 异步编程:无锁数据结构实现原理
java·数据结构·golang
仰泳的熊猫11 小时前
1094 The Largest Generation
数据结构·c++·算法·pat考试
小年糕是糕手12 小时前
【C++】string类(二)
开发语言·数据结构·c++·程序人生·算法·leetcode·数字货币
LYFlied12 小时前
【每日算法】LeetCode239. 滑动窗口最大值
数据结构·算法·leetcode·面试
XiaoHu020712 小时前
C++ 数据结构关于二叉搜索树
数据结构·算法
C雨后彩虹12 小时前
事件推送问题
java·数据结构·算法·华为·面试
明洞日记12 小时前
【设计模式手册018】访问者模式 - 分离数据结构与操作
数据结构·设计模式·访问者模式
LYFlied12 小时前
【每日算法】LeetCode 560. 和为 K 的子数组
前端·数据结构·算法·leetcode·职场和发展