【数据结构】反转链表

embedded/2024/9/25 21:18:53/

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};typedef struct ListNode ListNode;
struct ListNode* reverseList(struct ListNode* head) {if(head == NULL){return head;}ListNode*n1,*n2,*n3;n1=NULL;n2=head;n3=n2->next;while(n2){n2->next=n1;n1=n2;n2=n3;if(n3)n3=n3->next;}return n1;}

创建三个临时变量,n1为新链表,n2为原来链表的头节点,n3为原来链表的头节点的下一个节点。

用while循环判断条件为n2不能为空,让n2的next指针连上新链表的头节点。然后让n1=n2,也就是让新链表的头节点为n2。然后让n2=n3,这个节点传完了要从下一个节点了的位置开始传了。到这里要判断n3是否为空指针,因为n3是n2的下一个节点,while循环的判断条件是n2不为空也就是当n2遍历到最后一个节点的时候n3已经是野指针了。就这样一直遍历到原来指针到最后一个节点为止。

最后返回新节点的头节点。
对了当原链表为空的时候直接返回空指针就可以了。


http://www.ppmy.cn/embedded/23747.html

相关文章

手写基于redis-lua脚本实现分布式id生成器starter

手写基于redis-lua脚本实现分布式id生成器starter 文章目录 1.前言2.实现思路2.1lua脚本的特性2.2 了解三个redis命令2.3集群自增序列实现原理2.4三种实现思路2.4.1 实现思路一2.4.2 实现思路二2.4.3实现思路三 3.项目工程目录4.源码仓库地址5.依赖及使用配置5.1依赖5.2nacos配…

基于yolov5实时实例分割

是一个结合了最新技术进展(State-of-the-Art, SOTA)的实时实例分割项目,基于著名的YOLOv5目标检测架构,并对其进行扩展以实现对图像中每个对象实例的精确像素级分割。以下是该项目的中文介绍: YOLOv5: YOL…

《深入浅出.NET框架设计与实现》笔记6.5——ASP.NET Core应用程序多种运行模式之五——补充说明Kestrel

关于Kestrel Kestrel 不是 ASP.NET Core 的一种运行模式,而是 ASP.NET Core 默认的 Web 服务器。 在 ASP.NET Core 应用程序中,Kestrel 用作 Web 服务器来处理传入的 HTTP 请求,并将它们传递给应用程序进行处理。实际上,Kestrel 通…

机器人技术概述_3.机器人的分类

由于机器人的用途广泛,有许多种分类。行业不同,机器人的应用场景不一样,由于要求的不同,机器人的控制方式也存在许多差异,这里简要描述两种分类。 1.按控制方式分类 如果按照要求的控制方式分类,机器人可分…

二叉树06(leetcode654,617,700,98)

参考资料: https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5%8F%89%E6%A0%91.html 654. 最大二叉树 题目描述: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为…

盛势启创牵手盘古信息IMS,打造汽车零部件制造企业新标杆!

坐落于武汉市一家汽车零部件制造工厂内,7200㎡的厂房车间宽敞明亮,一排排智能化生产设备有序摆放,武汉盛势启创科技有限公司旗下的新能源汽车三电系统智能传感器、智能座舱及线控底盘控制器等产品正紧锣密鼓排产中。 坐落于武汉市一家汽车零…

新媒体矩阵号是怎么做的?

在新媒体这个充满机遇的平台上,矩阵账号已经成为吸引广泛观众和提高品牌曝光度的有力工具。通过创建多个账号,每个账号都有独特的内容和风格,可以形成一个强大的账号网络,提高粉丝的粘性和转化率。 本文将介绍如何打造新媒体矩阵…

Word图片被隐藏了怎么办?

背景 如下图,插入的图片被隐藏了 解决办法 选中图片,右上角有个图标,选择嵌入型 继续选中图片,在状态栏里的段落中,点击小箭头到设置里(即段落设置) 将行距改成单倍行距 完成