算法:带头结点的单链表原地逆置

ops/2025/1/19 21:21:57/

 核心思想:借助两个指针

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>
#include <stdlib.h>//单链表结构体定义
typedef int ElemType;
typedef struct Node
{ElemType data;struct Node* next;
}LNode, *LinkList;//尾插法建立带头结点的单链表
void CreLinkListTail(LNode* L, int n)
{LNode* s, * r;ElemType x;int i;r = L;//r指针的初始化,首先指向链表Lprintf("带头结点尾插法--输入结点:\n");for (i = 0; i < n; i++){scanf("%d", &x);s = (LNode*)malloc(sizeof(LNode));s->next = NULL;s->data = x;//尾插r->next = s;//r的下一个结点是sr = s;//r指向s}r->next = NULL;
}//原地反转
void localReverse(LNode* L)
{if (L == NULL || L->next == NULL){return;}//借助两个指针来原地逆置链表LNode* beg = L->next;LNode* end = L->next->next;while (end != NULL){beg->next = end->next;end->next = L->next;L->next = end;end = beg->next;//end指针重新指向beg指针后一个结点}
}//输出链表信息
void OutPut(LNode* L)
{LNode* p;p = L;while (p != NULL){printf("%d ", p->data);p = p->next;}printf("\n");
}int main()
{int n;//n个结点printf("请在键盘中输入链表有几个结点:\n");scanf("%d", &n);//输入n个结点LNode* L = (LNode*)malloc(sizeof(LNode));//空链表的创建L->next = NULL;//指针域为空CreLinkListTail(L, n);//尾插法建立单链表printf("尾插法--输出建立后的单链表:\n");OutPut(L->next);//输出建立后的单链表localReverse(L);printf("逆置后的单链表:\n");OutPut(L->next);return 0;
}


http://www.ppmy.cn/ops/151481.html

相关文章

《Compact Convolutional Transformers:开启计算机视觉新篇》

一、从 Transformer 到 CCT 的变革之路 在人工智能的浩瀚星空中&#xff0c;Transformer 模型宛如一颗璀璨的超新星&#xff0c;自 2017 年在论文《Attention Is All You Need》中横空出世后&#xff0c;彻底改写了自然语言处理的格局。它以创新性的自注意力机制&#xff0c;巧…

阿里云 Serverless 助力盟主直播:高并发下的稳定性和成本优化

在直播场景中&#xff0c;阿里云 Serverless 应用引擎 SAE 提供的无缝弹性伸缩与极速部署能力&#xff0c;确保直播间高并发时的流畅体验&#xff0c;降低了我们的运营成本&#xff0c;简化了运维流程。结合阿里云云原生数据库 PolarDB 的 Serverless 能力&#xff0c;实现了数…

API接口到底是什么

目录 一、API概述 二、API接口的定义与基本概念 &#xff08;一&#xff09;什么是API接口 &#xff08;二&#xff09;API接口的组成要素 &#xff08;三&#xff09;API接口的类型 Web API 库API 远程API 三、API接口的工作原理 &#xff08;一&#xff09;请求与响…

StarRocks 怎么让特定的SQL路由到FE master节点的

背景 本文基于 StarRocks 3.1.7 大家都知道对于Starrocks来说 FE 是分 master和follower的&#xff0c;而只有master节点才能对元数据进行写操作。但是为什么呢&#xff1f;哪里有体现呢&#xff1f; 这其中的原因在网上是搜不到的&#xff0c;所以大家只知道只有master节点才…

【神经网络基础】

目录 一、神经网络的构成 1.1什么是神经网络&#xff1f; 1.2 激活函数 1.2.1 Sigmoid 1.2.2 Tanh 1.2.3 ReLU 1.2.4 softmax 1.2.5 其他激活函数 1.2.6 选择激活函数 1.3 参数初始化 1.4 模型构建 二、损失函数 2.1 分类问题 2.1.1多分类&#xff08;多分类交叉…

将收藏夹变为静态网页,本地用可以当浏览器首页

看到评论区&#xff0c;兴起做了个项目&#xff0c;Github链接 Local Bookmarks 把书签转换为静态网页 一个简洁优雅的本地书签管理工具&#xff0c;把书签转换为浏览器主页。 使用方法 安装浏览器扩展: Edge浏览器: Pintree Bookmarks Exporter Chrome浏览器: Pintree B…

R语言绘图

多组火山图 数据准备&#xff1a; 将CSV文件同一在一个路径下&#xff0c;用代码合并 确保文件列名正确 library(fs) library(dplyr) library(tidyr) library(stringr) library(ggplot2) library(ggfun) library(ggrepel)# 获取文件列表 file_paths <- dir_ls(path &quo…

SpringMVC 实战指南:文件上传

第一章&#xff1a;常用的注解&#xff1a; RequestParam 注解&#xff1a; 作用&#xff1a;把请求中的指定名称的参数传递给控制器中的形参赋值属性&#xff1a; value&#xff1a;请求参数中的名称required&#xff1a;请求参数中是否必须提供此参数&#xff0c;默认值是 tr…