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

【山大909算法题】2014-T1

文章目录

  • 1.原题
  • 2.算法思想
  • 3.关键代码
  • 4.完整代码
  • 5.运行结果

1.原题

为带表头的单链表类Chain编写一个成员函数Reverse,该函数对链表进行逆序操作(将链表中的结点按与原序相反的顺序连接),要求逆序操作就地进行,不分配任何新的结点。要求首先给出类的声明,在类的声明中,其它成员函数省略。

2.算法思想

定义三个指针变量,*prevNode、*currentNode、*nextNode,在遍历过程中反指。对第一个元素和最后一个的元素处理略有不同,需要单独处理。

3.关键代码

/*** @struct ListNode* @brief 单链表中的节点结构。*/
struct ListNode {int data; /**< 节点中存储的数据 */struct ListNode *next; /**< 指向下一个节点的指针 */
};/*** @struct List* @brief 单链表结构。*/
struct List {struct ListNode *head; /**< 指向链表头节点的指针 */int size; /**< 链表的大小 */
};/*** @brief 反转链表中的元素。* @param list 指向 List 结构的指针。*/
void Reverse(struct List *list) {struct ListNode *prevNode = NULL, *currentNode = list->head->next, *nextNode = NULL;while (currentNode != NULL) {nextNode = currentNode->next; // 存储下一个节点currentNode->next = prevNode; // 反转指向前一个节点的指针prevNode = currentNode; // 移动指针以进行下一次迭代currentNode = nextNode;}list->head->next = prevNode; // 更新头指针,使其指向反转后的新的第一个节点
}

4.完整代码

#include <stdio.h>
#include <stdlib.h>/*** @struct ListNode* @brief 单链表中的节点结构。*/
struct ListNode {int data; /**< 节点中存储的数据 */struct ListNode *next; /**< 指向下一个节点的指针 */
};/*** @struct List* @brief 单链表结构。*/
struct List {struct ListNode *head; /**< 指向链表头节点的指针 */int size; /**< 链表的大小 */
};/*** @brief 反转链表中的元素。* @param list 指向 List 结构的指针。*/
void Reverse(struct List *list) {struct ListNode *prevNode = NULL, *currentNode = list->head->next, *nextNode = NULL;while (currentNode != NULL) {nextNode = currentNode->next; // 存储下一个节点currentNode->next = prevNode; // 反转指向前一个节点的指针prevNode = currentNode; // 移动指针以进行下一次迭代currentNode = nextNode;}list->head->next = prevNode; // 更新头指针,使其指向反转后的新的第一个节点
}/*** @brief 显示链表中的元素。* @param list 指向 List 结构的指针。*/
void displayList(struct List *list) {struct ListNode *currentNode = list->head->next;printf("head");while (currentNode != NULL) {printf("->%d", currentNode->data);currentNode = currentNode->next;}printf("->NULL\n");
}int main() {struct List list;list.head = (struct ListNode *) malloc(sizeof(struct ListNode));list.head->next = NULL;list.size = 0;// 插入初始元素 1, 2, 3, 4, 5for (int i = 1; i <= 5; ++i) {struct ListNode *newNode = (struct ListNode *) malloc(sizeof(struct ListNode));newNode->data = i;newNode->next = list.head->next;list.head->next = newNode;list.size++;}// 输出原始链表printf("Original List: ");displayList(&list);// 执行反转操作Reverse(&list);// 输出反转后的链表printf("Reversed List: ");displayList(&list);return 0;
}

5.运行结果

image-20231119220006799

相关文章:

【山大909算法题】2014-T1

文章目录 1.原题2.算法思想3.关键代码4.完整代码5.运行结果 1.原题 为带表头的单链表类Chain编写一个成员函数Reverse&#xff0c;该函数对链表进行逆序操作&#xff08;将链表中的结点按与原序相反的顺序连接&#xff09;&#xff0c;要求逆序操作就地进行&#xff0c;不分配…...

《生成式 AI》课程 作业6 大语言模型(LLM)的训练微调 Fine Tuning -- part2

资料来自李宏毅老师《生成式 AI》课程&#xff0c;如有侵权请通知下线 Introduction to Generative AI 2024 Spring 来源背景说明 该文档主要介绍了国立台湾大学&#xff08;NTU&#xff09;2024 年春季 “生成式人工智能&#xff08;GenAI&#xff09;” 课程的作业 5&#…...

【机器学习】如何使用Python的Scikit-learn库实现机器学习模型,并对数据进行预处理和特征缩放以提高模型性能?

使用Python的Scikit-learn库可以方便地实现机器学习模型&#xff0c;并对数据进行预处理和特征缩放以提高模型性能。以下是一个典型的工作流程&#xff0c;包括数据加载、预处理、特征缩放、模型训练和评估&#xff1a; 1. 安装Scikit-learn 确保已安装Scikit-learn库&#x…...

【SpringCloud详细教程】-04-服务容错--Sentinel

精品专题&#xff1a; 01.《C语言从不挂科到高绩点》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. 《SpringBoot详细教程》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12789841.html?spm1001.20…...

计算机学习

不要只盯着计算机语言学习&#xff0c;你现在已经学习了C语言和Java&#xff0c;暑假又规划学习Python&#xff0c;最后你掌握的就是计算机语言包而已。 2. 建议你找一门想要深挖的语言&#xff0c;沿着这个方向继续往后学习知识就行。计算机语言是学不完的&#xff0c;而未来就…...

CSS - CSS One-Line

1. aspect-ratio 描述: 用于定义元素的宽高比&#xff0c;简化了以往使用“填充黑客”的方法。只需指定一个比率&#xff0c;浏览器会自动调整元素的尺寸 案例: .aspect-ratio-hd {aspect-ratio: 16/9; } .aspect-ratio-square {aspect-ratio: 1; /* 正方形 */ }2. object-…...

【AIGC】如何准确引导ChatGPT,实现精细化GPTs指令生成

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 &#x1f4af;前言&#x1f4af;准确引导ChatGPT创建爆款小红书文案GPTs指令案例&#x1f4af; 高效开发GPTs应用的核心原则明确应用场景和目标受众构建多样化风格模板提问与引…...

Redis主从架构

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的键值对存储系统&#xff0c;广泛应用于缓存、消息队列、实时分析等场景。为了提高系统的可用性、可靠性和读写性能&#xff0c;Redis提供了主从复制&#xff08;Master-Slave Replication&#xf…...

无人机探测:光电侦测核心技术算法详解!

核心技术 双光谱探测跟踪&#xff1a; 可见光成像技术&#xff1a;利用无人机表面反射的自然光或主动光源照射下的反射光&#xff0c;通过高灵敏度相机捕捉图像。该技术适用于日间晴朗天气下的无人机探测&#xff0c;具有直观、易于识别目标的特点。 红外成像技术&#xff1…...

34 基于单片机的指纹打卡系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52RC&#xff0c;采用两个按键替代指纹&#xff0c;一个按键按下&#xff0c;LCD12864显示比对成功&#xff0c;则 采用ULN2003驱动步进电机转动&#xff0c;表示开门&#xff0c;另一个…...

Day 26

进入贪心算法 基础理论 1、什么是贪心&#xff1f; 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 Eg&#xff1a;一堆钞票&#xff0c;你可以拿走 10 张&#xff0c;想达到最大金额&#xff0c;要怎么拿&#xff1f; –》指定每一次拿最大的&#xff0…...

11.25c++继承、多态

练习&#xff1a; 编写一个 武器类 class Weapon{int atk; }编写3个武器派生类&#xff1a;短剑&#xff0c;斧头&#xff0c;长剑 class knife{int spd; }class axe{int hp; }class sword{int def; }编写一个英雄类 class Hero{int atk;int def;int spd;int hp; public:所有的…...

ThinkPad t61p 作SMB服务器,打印服务器,pc ,android ,ipad利用此服务器互传文件

1.在t61p上安装win7 2,配置好smb 服务 3.再安装好打印驱动程序 4.pc与win7利用系统的网络互相发现,映射为硬盘使用。 5.android&#xff0c;ipad安装ES文件浏览器访问win7 共享文件夹&#xff0c;互传文件。 6.android手机安装FE文件浏览器&#xff0c;可以利用花生壳外网…...

数据结构单链表,顺序表,广义表,多重链表,堆栈的学习

单链表 比如一个多项式&#xff0c;主要包括x的系数&#xff0c;x的指数&#xff0c;那么可以创建一个一维数组来存储它的系数和指数&#xff0c;用数组下标来表示。它的系数可以用数组下标对应的数组元素来储存。 可是这样储存会浪费空间所以采用单链表形式来存储。 即创建一…...

uniapp内嵌的webview H5与应用通信

H5端&#xff1a; 1、找到index.html引入依赖 <script type"text/javascript" src"https://unpkg.com/dcloudio/uni-webview-js0.0.3/index.js"></script> 2、在需要通讯处发送消息 uni.postMessage({data:{code:200,msg:"处理完成&q…...

黄仁勋:人形机器人在内,仅有三种机器人有望实现大规模生产

11月23日&#xff0c;芯片巨头、AI时代“卖铲人”和最大受益者、全球市值最高【英伟达】创始人兼CEO黄仁勋在香港科技大学被授予工程学荣誉博士学位&#xff1b;并与香港科技大学校董会主席沈向洋展开深刻对话&#xff0c;涉及人工智能&#xff08;AI&#xff09;、计算力、领导…...

Docker--harbor私有仓库部署与管理

目录 一、Harbor 简介 1.1 什么是Harbor 1.2 Harbor的特性 1.3 Harbor的构成 二、Harbor 部署 2.1 部署 Docker-Compose 服务 2.2 部署 Harbor 服务 &#xff08;1&#xff09;下载或上传 Harbor 安装程序 &#xff08;2&#xff09;修改harbor安装的配置文件 2.3 启…...

35 基于单片机的精确电压表DA-AD转换

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DAC0832和ADC0832检测电压&#xff0c;0到8.5V&#xff0c;设计复位电路 LED管显示实际稳压值&#xff0c;初始电压0 二、硬件资源 基于KEIL5编写C代码&#xff0c…...

Windows系统下安装Triton 3.0.0预编译Triton 2.1.0

Triton是一个用于编写高效自定义深度学习原语的语言和编译器。它旨在提供一个开源环境&#xff0c;使得编写代码的速度比CUDA更快&#xff0c;同时比其他现有的DSLs&#xff08;领域特定语言&#xff09;更灵活。 在开始安装之前&#xff0c;请确保您的系统满足以下要求&#x…...

Easyexcel(7-自定义样式)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09;Easyexcel&#xff08;4-模板文件&#xff09;Easyexcel&#xff08;5-自定义列宽&#xff09;Easyexcel&#xff08;6-单…...

ubuntu搭建k8s环境详细教程

在Ubuntu上搭建Kubernetes&#xff08;K8s&#xff09;环境可以通过多种方式实现&#xff0c;下面是一个详细的教程&#xff0c;使用kubeadm工具来搭建Kubernetes集群。这个教程将涵盖从准备工作到安装和配置Kubernetes的所有步骤。 环境准备 操作系统&#xff1a;确保你使用的…...

spark 写入mysql 中文数据 显示?? 或者 乱码

目录 前言 Spark报错&#xff1a; 解决办法&#xff1a; 总结一下&#xff1a; 报错&#xff1a; 解决&#xff1a; 前言 用spark写入mysql中&#xff0c;查看中文数据 显示?? 或者 乱码 Spark报错&#xff1a; Sat Nov 23 19:15:59 CST 2024 WARN: Establishing SSL…...

Python中的简单爬虫

文章目录 一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务器和浏览器的通讯流程3. 浏览器访问Web服务器的通讯流程4. 加载图片资源代码 二. 基于Web请求的FastAPI通用配置1. 目前Web服务器存在问题2. 基于Web请求的FastAPI通用配置 三. Python爬虫介绍1. 什…...

网络安全原理与技术思考题/简答题

作业1&#xff08;第1章、第2章、第8章&#xff09; 1. 网络安全的基本属性有哪些&#xff1f;简单解释每个基本属性的含义。网络安全的扩展属性包括哪些&#xff1f; 基本属性&#xff1a; 1.机密性(Confidentiality)&#xff1a; 含义&#xff1a;确保信息不被未授权的用户…...

技术周刊 | 前端真的凉了吗?2024 前端趋势解读

大家好&#xff0c;我是童欧巴。见字如面&#xff0c;万事胜意。 小雪已过&#xff0c;大家勿忘添衣御寒&#xff0c;欢迎来到第 135 期周刊。 大厨推荐 2024 前端趋势 The Software House 公司发布的前端状态调查报告&#xff0c;本版是迄今为止最全面的调查&#xff0c;共…...

Qt常用控件之按钮类控件

目录 QPushButton 添加图标 添加快捷键 QRadioButton 关于toggled 模拟点餐功能 QCheckBox 刚刚 QWidget 中涉及到的各种 属性/函数/使用方法&#xff0c;针对接下来要介绍的 Qt 的各种控件都是有效的&#xff0c;因为各种控件都是继承自 QWidget 的 接下来本篇博客就学…...

Wonder3D本地部署到算家云搭建详细教程

Wonder3D简介 Wonder3D仅需2至3分钟即可从单视图图像中重建出高度详细的纹理网格。Wonder3D首先通过跨域扩散模型生成一致的多视图法线图与相应的彩色图像&#xff0c;然后利用一种新颖的法线融合方法实现快速且高质量的重建。 本文详细介绍了在算家云搭建Wonder3D的流程以及…...

景联文科技:高质量数据采集标注服务引领AI革新

在当今这个数字化时代&#xff0c;数据已经成为推动社会进步和产业升级的关键资源。特别是在人工智能领域&#xff0c;高质量的数据是训练出高效、精准的AI模型的基础。景联文科技是一家专业的数据采集与标注公司&#xff0c;致力于为客户提供高质量的数据处理服务&#xff0c;…...

企业面试真题----阿里巴巴

1.HashMap为什么不是线程安全的&#xff1f; 首先hashmap就是为单线程设计的&#xff0c;并不适合于多线程环境&#xff0c;而hashmap的线程不安全原因主主要是以下两个原因&#xff1a; 死循环 死循环问题发生在jdk1.8之前&#xff08;不包含1.8&#xff09;&#xff0c;造…...

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【四】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

【C++知识总结2】C++里面的小配角cout和cin

一、引入 第一个关于输入输出的C代码 #include<iostream> // std是C标准库的命名空间名&#xff0c;C将标准库的定义实现都放到这个命名空间中 using namespace std; int main() {cout<<"Hello world!!!"<<endl;return 0; } 1. 使用cout标准输出…...

门控循环单元(GRU)与时间序列预测应用

一、GRU简介 门控循环单元&#xff08;Gated Recurrent Unit&#xff0c;简称GRU&#xff09;是一种简化版的LSTM&#xff08;长短期记忆网络&#xff09;&#xff0c;专门用于解决长序列中的梯度消失问题。与LSTM相比&#xff0c;GRU具有更简单的结构和较少的参数&#xff0c…...

Spring Boot 3 集成 Spring Security(2)授权

文章目录 授权配置 SecurityFilterChain基于注解的授权控制自定义权限决策 在《Spring Boot 3 集成 Spring Security&#xff08;1&#xff09;》中&#xff0c;我们简单实现了 Spring Security 的认证功能&#xff0c;通过实现用户身份验证来确保系统的安全性。Spring Securit…...

互联网摸鱼日报(2024-11-22)

互联网摸鱼日报(2024-11-22) 36氪新闻 学习马斯克不丢人&#xff0c;脸书也开始改造自己了 旅游行业趋势变了&#xff0c;增长还能从哪里寻找&#xff1f; 大厂入局后&#xff0c;小型小游戏团队能否继续喝一口汤&#xff1f; 一拥而上的“跨界咖啡”&#xff0c;是“走心”…...

RNN并行化——《Were RNNs All We Needed?》论文解读

InfoPaperhttps://arxiv.org/abs/2410.01201GitHubhttps://github.com/lucidrains/minGRU-pytorch个人博客地址http://myhz0606.com/article/mini_rnn 最近在看并行RNN相关的paper&#xff0c;发现很多都利用了Parallel Scanning算法。本文将从Parallel Scanning算法开始&…...

机器学习周志华学习笔记-第6章<支持向量机>

机器学习周志华学习笔记-第6章<支持向量机> 卷王&#xff0c;请看目录 6支持向量机6.1 函数间隔与几何间隔6.1.1 函数间隔6.1.2 几何间隔 6.2 最大间隔与支持向量6.3 对偶问题6.4 核函数6.5 软间隔支持向量机6.6 支持向量机6.7核方法 6支持向量机 支持向量机是一种经典…...

IP反向追踪技术,了解一下?

DOSS&#xff08;拒绝服务&#xff09;攻击是现在比较常见的网络攻击手段。想象一下&#xff0c;有某个恶意分子想要搞垮某个网站&#xff0c;他就会使用DOSS攻击。这种攻击常常使用的方式是IP欺骗。他会伪装成正常的IP地址&#xff0c;让网络服务器以为有很多平常的请求&#…...

2025蓝桥杯(单片机)备赛--扩展外设之UART1的原理与应用(十二)

一、串口1的实现原理 a.查看STC15F2K60S2数据手册: 串口一在590页&#xff0c;此款单片机有两个串口。 串口1相关寄存器&#xff1a; SCON:串行控制寄存器&#xff08;可位寻址&#xff09; SCON寄存器说明&#xff1a; 需要PCON寄存器的SMOD0/PCON.6为0&#xff0c;使SM0和SM…...

Linux 使用gdb调试core文件

core文件和gdb调试 什么是 core 文件&#xff1f;产生core文件的原因&#xff1f;core 文件的控制和生成路径gdb 调试core 文件引用和拓展 什么是 core 文件&#xff1f; 当程序运行过程中出现Segmentation fault (core dumped)错误时&#xff0c;程序停止运行&#xff0c;并产…...

Python后端flask框架接收zip压缩包方法

一、用base64编码发送&#xff0c;以及接收 import base64 import io import zipfile from flask import request, jsonifydef unzip_and_find_png(zip_data):# 使用 BytesIO 在内存中处理 zip 数据with zipfile.ZipFile(io.BytesIO(zip_data), r) as zip_ref:extracted_paths…...

【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 文章题目&#xff1a;Java技术深度剖析&#xff1a;从分库分表到微服务的核心问题解析 摘要&#xff1a; 本…...

Linux 中 find 命令使用详解

目录 一&#xff1a;基本语法二&#xff1a;搜索路径1、限制递归层级2、排除指定路径 三&#xff1a;匹配条件1、按照文件名搜索2、按文件类型搜索3、按文件大小搜索4、按文件权限搜索5、按文件所有者或所属组搜索6、按文件修改时间搜索 四&#xff1a;执行操作1、输出满足条件…...

云服务器部署WebSocket项目

WebSocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;其设计的目的是在Web浏览器和Web服务器之间进行实时通信&#xff08;实时Web&#xff09; WebSocket协议的优点包括&#xff1a; 1. 更高效的网络利用率&#xff1a;与HTTP相比&#xff0c;WebSocket的握手只…...

林业产品智能推荐引擎:Spring Boot篇

1 绪论 1.1 选题背景 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求&#xff0c;设置不同的功能&…...

【C++】LeetCode:LCR 077. 排序链表

题干 LCR 077. 排序链表 给定链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 解法&#xff1a;归并排序 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(null…...

git教程

文章目录 简介&#xff1a;使用教程&#xff1a;&#xff08;1&#xff09;安装git&#xff1a;&#xff08;2&#xff09;设置用户名和邮箱作为标识符&#xff1a;&#xff08;3&#xff09;建立本地仓库&#xff1a;本地仓库作用&#xff1a;&#xff08;1&#xff09;将文件…...

报表工具功能对比:免费易上手的山海鲸报表 vs 庞大用户群体的Tableau

在数据报表与分析领域&#xff0c;随着大数据技术的不断发展和企业数字化转型的深入&#xff0c;市面上涌现出了众多报表工具&#xff0c;为用户提供多元化的选择。对于企业数据分析师、IT人员及管理层来说&#xff0c;选择一款适合自己的报表工具至关重要。本文将从多个角度对…...

鸿蒙原生应用开发及部署:首选华为云,开启HarmonyOS NEXT App新纪元

目录 前言 HarmonyOS NEXT&#xff1a;下一代操作系统的愿景 1、核心特性和优势 2、如何推动应用生态的发展 3、对开发者和用户的影响 华为云服务在鸿蒙原生应用开发中的作用 1、华为云ECS C系列实例 &#xff08;1&#xff09;全维度性能升级 &#xff08;2&#xff…...

CSS之3D转换

三维坐标系 三维坐标系其实就是指立体空间&#xff0c;立体空间是由3个轴共同组成的。 x轴:水平向右注意:x右边是正值&#xff0c;左边是负值 y轴:垂直向下注意:y下面是正值&#xff0c;上面是负值 z轴:垂直屏幕注意:往外面是正值&#xff0c;往里面是负值 3D移动 translat…...

uni-app初学笔记:文件路径与作用

components:可复用的组件pages:页面&#xff08;可见/不可见&#xff09;static:静态资源&#xff0c;存放图片视频等 &#xff08;相当于vue项目的 assets&#xff09;mainjs:Vue初始化入口文件App.vue:应用配置&#xff0c;用来配置App全局样式以及监听pages.json :配置页面路…...