带头节点的单链表逆置
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Node;
// 请在此添加你的代码
/********** Begin *********/
struct node *CreatList()
{
struct node *pre,*cur,*head;
int n,i=0;
scanf("%d",&n);
head=(struct node*)malloc(sizeof(struct node));//给头节点分配内存
head->next=NULL;//初始化头节点
head->data=0;
while(i<n)
{
cur=(struct node*)malloc(sizeof(struct node));
scanf("%d",&(cur->data));
cur->next=NULL;
if(head->next==NULL)
{
head->next=cur;
}
else
pre->next = cur;
pre=cur;
i++;
}
return head;
}
void ShowList(struct node *head)
{
struct node *temp;
temp = head->next; //取得链表的头指针
while(temp!=NULL) //tenp所指节点不能为空
{
printf("%d ",temp->data); //输出temp所指的节点的值
temp = temp->next; //temp后移指向下一个节点
}
}
struct node *ReverseList(struct node *head)
{
struct node *cur,*pre;
cur=head->next;
head->next=NULL;
while(cur)
{
pre=cur;
cur=cur->next;
pre->next=head->next;
head->next=pre;
}
return head;
}
/********** End **********/
int main(void)
{
struct node *head;
head = CreatList();
printf("链表逆置前的数据:\n");
ShowList(head);
printf("\n");
head = ReverseList(head);
printf("链表逆置后的数据:\n");
ShowList(head);
return 0;
}
带头节点的单链表逆置相关推荐
- C语言实现不带头结点的单链表逆置的三种方法
C语言实现不带头结点的单链表逆置的三种方法 直接循环 头插法 递归法 END! 直接循环 图片解释 ListNode* ReverseList1(ListNode *head) {if(head == ...
- 【数据结构】无头节点的单链表逆置
day1 牛客网刷题 C语言实现单链表逆置 C语言实现单链表逆置 由于一段时间没有用数据结构 刚开始有些忘记了 第一次真正在牛客网上进行调试 原来还会有调试用例 还要设置边界值 如果没有 测试也不会通 ...
- 单链表操作10-带头结点的单链表逆置(个人学习笔记,仅供参考)
带头结点的单链表逆置 题目要求 单链表结点定义 函数接口定义 测试程序样例 输入样例 输出样例 答案 题目要求 设计算法Reverse( ),将带头结点的单链表A逆置,要求利用原有链表的链点,最后输出 ...
- 带有头节点单链表,带有头节点单链表逆置的四种方法
文章目录 带头结点的单链表 单链表逆置的四种做法 带头结点的单链表 链式存储结构:逻辑上相邻的数据元素,并不要求物理上也相邻: 单链表的代码实现 .h文件 #pragma once typedef i ...
- 单链表逆置:空间复杂度O(1)
带头结点单链表逆置 从链表(带头结点)首个数据结点开始,重新头插法建表,将节点链接到头结点上 //单链表结点结构 typedef struct LNode {int data;struct LNode ...
- java数据结构之单链表逆置算法
单链表逆置算法1 设计思想:在链表类中新加成员方法getNode(int i),用来获取指定位置的节点,新建一个空单链表,将原链表的每个节点按照从后往前的顺序依次取出,再把节点的数据依次添加到新的链表 ...
- 数据结构:单链表逆置
实验要求: 写出将单链表逆置的算法.即令单链表的第一个结点变为最后一个结点,第二个结点变为倒数第二个结点,-,最后一个结点变为第一个结点. 依次从键盘读入数据,逆序建立链表L: 逆置链表L(创建新的链 ...
- 单链表逆置C语言编程实现
单链表逆置 #include<stdio.h> #include<stdlib.h> typedef struct node {char data;//data为结点的数据信息 ...
- 【不带头节点的单链表】
不带头节点的单链表 前言 一.结构体设计 二.函数实现 1. 初始化 2. 购买一个新节点 3. 头插 4. 尾插 5. 按位置插入 6. 头删 7. 尾删 8. 按位置删 总结 补充代码 前言 单链 ...
最新文章
- wxWidgets:wxHtml 测试示例
- python作业(12.12)
- 深入浅出MySQL出版了
- 【每日算法Day 65】你能顺利救出地下城里的公主吗?
- B - 最短路径问题
- 自动驾驶 2-3 软件架构 Software Architecture
- 如何降低程序员的工资?
- 关键词搜索-免费搜索关键词排名软件
- Flink之DataSet转换操作(二)
- 进击的蚂蚁金融云与场景焦虑的银行
- 人机融合的科幻与现实
- 计算机三维设计ppt,1 三维建模技术发展史.ppt
- Project2 分段切割路面,只取一个种子点
- android显卡效果吗,安卓模拟器显卡渲染模式中DirectX和OpenGL两个有什么区别?
- ESP8266入门教程04:连接WIFI热点
- 服装ERP软件体系究竟差在哪里?
- 前端人工智能?TensorFlow.js 学会游戏通关
- ROS从入门到精通2-1:机器人3D可视化工具——Rviz
- 欣向路由器:四大过人绝技的应用价值(转)
- Just Pour the Water