当前位置: 首页 > news >正文

单链表就地逆置

算法思想:构建一个带头结点的单链表L,然后访问链表中的每一个数据结点,将访问到的数据结点依此插入到L的头节点之后。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LinkNode {ElemType data;LinkNode* next;
}LinkNode, * LinkList;
//尾插法建立单链表
void creatLinkList(LinkList& L) {L = (LinkNode*)malloc(sizeof(LinkNode));L->next = NULL;LinkNode* pTail = L;int num;while (scanf("%d", &num) && num != -1) {LinkNode* pnode = (LinkNode*)malloc(sizeof(LinkNode));pnode->data = num;pnode->next = pTail->next;pTail->next = pnode;pTail = pnode;}
}
//打印输出
void printLinkList(LinkList L) {LinkNode* pCur = L->next;while (pCur != NULL) {printf("%d ", pCur->data);pCur = pCur->next;}
}
//数据结点头插到L之后
void insertNode(LinkList& L,LinkNode* pnode) {pnode->next = L->next;L->next = pnode;
}
//单链表就地逆置
void reserveList(LinkList& L) {LinkNode* pCur = L->next;L->next = NULL;while (pCur != NULL) {LinkNode* pnode = pCur;pCur = pCur->next;insertNode(L, pnode);}
}
int main() {LinkList L;creatLinkList(L);reserveList(L);printLinkList(L);return 0;
}

http://www.lryc.cn/news/331153.html

相关文章:

  • MTU/TCPMSS/VLAN/ACCESS/TRUNK/HYBRID
  • Spring Boot的基础知识和应用
  • 【Linux】详解动静态库的制作和使用动静态库在系统中的配置步骤
  • 开源模型应用落地-qwen1.5-7b-chat-LoRA微调(二)
  • 【现代企业管理】企业组织结构和组织文化的理论与实践——以华为为例
  • 【Kotlin】Sequence简介
  • 【Java】Thread详解
  • QT TCP和UDP网络编程
  • Maven入门指南:构建与管理Java项目的利器
  • EXCEL-VB编程实现自动抓取多工作簿多工作表中的单元格数据
  • 用Vue仿了一个类似抖音的App
  • HarmonyOS 应用开发之非线性容器
  • Golang Context是什么
  • 算法基础--递推
  • 超市销售数据-python数据分析项目
  • java实现手机号,密码,游邮箱 , 验证码的正则匹配工具类
  • java中的Arrays类的常用操作
  • 回溯算法|78.子集
  • VC++、GCC、CLANG,INT128有符号整数编译器关键字
  • 用于HUD平视显示器的控制芯片:S2D13V40
  • JSP使用模板字符串数据不能渲染的问题
  • AI音乐GPT时刻来临:Suno 快速入门手册!
  • 数字乡村发展蓝图:科技赋能农村实现全面振兴
  • Day42 动态规划 part04
  • python set是什么类型
  • redis事务(redis features)
  • SpringBoot整合minio
  • 3090. 每个字符最多出现两次的最长子字符串
  • 26.活锁、饥饿锁
  • docker 安装nginx