本题要求实现一个函数,将给定的单链表逆转。

函数接口定义:

List Reverse( List L );

其中List结构定义如下:

typedef struct Node *PtrToNode;

struct Node {

ElementType Data; /* 存储结点数据 */

PtrToNode Next; /* 指向下一个结点的指针 */

};

typedef PtrToNode List; /* 定义单链表类型 */

L是给定单链表,函数Reverse要返回被逆转后的链表。

裁判测试程序样例:

#include

#include

typedef int ElementType;

typedef struct Node *PtrToNode;

struct Node {

ElementType Data;

PtrToNode Next;

};

typedef PtrToNode List;

List Read(); /* 细节在此不表 */

void Print( List L ); /* 细节在此不表 */

List Reverse( List L );

int main()

{

List L1, L2;

L1 = Read();

L2 = Reverse(L1);

Print(L1);

Print(L2);

return 0;

}

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

输入样例:

5

1 3 4 5 2

输出样例:

1

2 5 4 3 1

code:

#include

#include

typedef int ElementType;

typedef struct Node *PtrToNode;

struct Node {

ElementType Data;

PtrToNode Next;

};

typedef PtrToNode List;

List Read(); /* 细节在此不表 */

void Print( List L ); /* 细节在此不表 */

List Reverse( List L );

int main()

{

List L1, L2;

L1 = Read();

L2 = Reverse(L1);

Print(L1);

Print(L2);

return 0;

}

List Read(){

int len = 0;

int num = 0;

PtrToNode list = NULL;

PtrToNode last = NULL;

scanf( "%d",&len );

if( 0 == len ){

return NULL;

}

scanf( "%d",&num );

list = ( PtrToNode )malloc( sizeof( struct Node ) );

list->Data = num;

list->Next = NULL;

last = list;

len--;

while( len > 0 ){

scanf( "%d",&num );

PtrToNode node = ( PtrToNode )malloc( sizeof( struct Node ) );

node->Data = num;

node->Next = NULL;

last->Next = node;

last = node;

len--;

}

return list;

}

void Print( List L ){

if( NULL == L ){

return ;

}

PtrToNode last = L;

while( NULL != last ){

printf( "%d ",last->Data );

last = last->Next;

}

putchar( '\n' );

}

List Reverse( List L ){

if( NULL == L ){

return NULL;

}

PtrToNode listre = NULL;

PtrToNode t = L->Next;

if( NULL == t ){

listre = L;

return listre;

}

L->Next = t->Next;

listre = t;

t->Next = L;

while( NULL != L->Next ){

t = L->Next;

L->Next = t->Next;

t->Next = listre;

listre = t;

}

return listre;

}

逆转线性链表的算法c语言,pta-数据结构与算法题目集(中文)-4-1-单链表逆转...相关推荐

  1. c语言递增20,2020-07-20(C语言)数据结构-在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素...

    //在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素,例如:(7,10,10,21,30,42,42,51,70)将变为(7,10 ...

  2. 在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法,去掉数值相同的元素,使得表中不再有重复的元素。

    在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法,去掉数值相同的元素,使得表中不再有重复的元素.例如(7,10,10,21,30,42,42,42,51,70)将变为(7, ...

  3. 13:Scala语言的数据结构和算法

    第十九章 Scala语言的数据结构和算法 19.1 数据结构(算法)的介绍 数据结构的介绍   1.数据结构是一门研究算法的学科,只从有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮.更加 ...

  4. 大数据技术之_16_Scala学习_13_Scala语言的数据结构和算法_Scala学习之旅收官之作

    大数据技术之_16_Scala学习_13 第十九章 Scala语言的数据结构和算法 19.1 数据结构(算法)的介绍 19.2 看几个实际编程中遇到的问题 19.2.1 一个五子棋程序 19.2.2 ...

  5. 数据结构上机实践第四周项目2 - 建设“单链表”算法库

    项目2 - 建设"单链表"算法库 本次实践的目的以多文件组织的形式建设"单链表算法库",以便在后续的工程中使用. 文中的多文件组织方式不再细说,可以点击此处参照 ...

  6. 算法java语言描述_java语言描述数据结构与算法崔笑颜的博客

    java语言描述数据结构与算法崔笑颜的博客 冒泡排序 插入排序 选择排序 希尔排序 快速排序 归并排序 二分查找package com.demo.test; import java.util.Arra ...

  7. PTA数据结构与算法题目集6-4 6-3 6-8

    PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...

  8. PTA数据结构与算法题目集 6-9 二叉树的遍历

    PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...

  9. 题目:代码实现判断单链表是否有环

    一.单链表环的定义: 有环的定义是,链表的尾节点指向了链接中间的某个节点.比如下图,如果单链表有环,则在遍历时,在通过结点J之后,会重新回到结点D. 题目:0.如何判断单链表里面是否有环? 算法的思想 ...

  10. 【大厂算法系列】学数据结构与算法有用吗?时间与空间复杂度的定义与计算

    专栏地址:[大厂算法系列] 专栏内容: 数组,列表,栈,队列,树,哈希表,字符串,堆,查找,排序,DFS,BFS,回溯,贪心,动态规划等+力扣大厂真题 算法交流: V [yopa66] 大厂算法 为什 ...

最新文章

  1. 阿里云免费开放一切AI算力,加速新型冠状病毒新药和疫苗研发
  2. 在元素前面添加一个伪元素下边框
  3. Leetcode 344. 反转字符串 (每日一题 20210812)
  4. 2015-03-17 current note creation logic in my task
  5. 史上最全的stm32资料库4---常见问题及编译工具篇
  6. CF1550D Excellent Arrays(完全会了更新)
  7. met40如何升级成鸿蒙系统,再见了,EMUI11!你好,华为鸿蒙!
  8. 你以为环幕屏就结束了?真正的小米MIX 4或下月发布:1亿像素相机加持
  9. android prgoressBar setProgressDrawable 在4.0系统式正常,在2.3系统上不能正常使用的问题...
  10. hibernate官网文档
  11. 往年报名破千人,南京大学计算机系2022年夏令营来袭
  12. 「魔兽世界怀旧服」衣米魔兽怀旧服玩家年度实物礼品发放
  13. Chrome浏览器清除cookies方法
  14. Excel如何将一列数据转为一行
  15. Postman接口测试自动化介绍
  16. 2022年十大汽车行业新闻
  17. 如何快速更改电脑ip地址【图文教程】?
  18. Django创建加法计算器
  19. python实现守护进程_Python如何实现守护进程的方法示例
  20. HTML怎么像是下划线、穿越文字的横线以及上划线

热门文章

  1. 使用GoLang开发游戏服务器(一)
  2. 免费可商用的音乐资源
  3. 揭秘苹果应用审核团队(史上最全版)
  4. mbp touchbar设置_macbookpro touchbar 怎么添加锁屏快捷键
  5. 【excel】QUARTILE.EXC V.S. QUARTILE.INC
  6. ps懒人一键智能AI磨皮插件 去除皮肤瑕疵
  7. 计算机不能连接网络适配器,网络适配器显示未连接的解决方法图文教程
  8. ppt图片特效 c语言实现,用了这么久的PPT,才知道PPT可以一键生成特效图片!太好看了...
  9. springboot bootcdn使用
  10. AkShare-期货数据-连续合约数据,2010年的IFO怎么获取呢?