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

单链表经典OJ题:反转链表

题目:

给你单链表的头节点 head ,i请你反转链表,并返回反转后的链表。

图例:

 分析:

根据链表的特征,反转链表的本质便是改变节点内部的指针方向。

将原先指向下一个节点的指针进行修改,将其的指向修改成指向上一个节点。

解法:

根据分析我们可以得出两种解法:

解法1:

  • 定义新链表,和移除元素的做法类似,但是使用的是头插方法。

解法2:

  • 直接在原链表上改变指针的指向,这里需要运用三个指针。
  • 第一个是最开始的设置为NULL的指针n1
  • 第二个是开始从第一个节点开始遍历的n2
  • 第三个是从第二个节点开始遍历的n3。
  • n2是改变方向的,n3是保存下一个节点位置的,n1是被指方向的,三者同时开始遍历,只是遍历的位置不同。

解法2本质:
  • 本质就是原先 节点 1的 1->next  指向的是2 变成了指向NULL。
  •  原先节点2 的 2->next指向3 变成了指向节点1。
  • 开始遍历的时候,首先将n2的指针指向变成n1,而后n1要变成n2,n2要变成n3,n3要变成n3->next

  • 要注意n3在遍历过程中是最早指向NULL的所以要给n3设定一个判定条件,让n3及时停下。 
  • 另外还要判定这个链表是否有节点,那么就是得判定第一个节点head是否存在。

代码演示:

  • 因为n2最后要变成头节点,所以遍历的判定条件是n2是否为空 
http://www.lryc.cn/news/197412.html

相关文章:

  • 软考高级信息系统项目管理师系列论文六:论信息系统项目的人力资源管理
  • Kubeadm部署k8s集群
  • YOLOv7改进:新机制,扩展DCNv3,基于DCNv2优化 | CVPR2023 InternImage
  • SMAP(Soil Moisture Active and Passive)数据下载
  • 【Huawei S5700交换机】产品介绍
  • 华为Atlas 200I DK A2开发者套件--基础使用配置
  • C++DAY47
  • 四边形不等式
  • Jmeter(四):请求默认值元件应用,正则表达式提取器元件讲解
  • LCR 001. 两数相除
  • LeCun和Bengio“吵”起来了,人工智能是“潘多拉魔盒”吗?
  • 电子期刊制作宝典,让你成为专业行家
  • ESP32网络开发实例-Web显示传感器实时数据
  • ARM Cortex-A9:裸机开发,点亮LED3
  • QT学习day2
  • 214. Devu和鲜花
  • 【C++初阶(三)引用与内联函数】
  • RK3288 Android11 mini-pcie接口 4G模组EC200A适配(含自适应功能)
  • Windows安装Jenkins
  • 计算属性,侦听属性,方法区别及例子
  • Windows工业三防平板全功能NFC近距离感应一维/二维扫描
  • git远端协同开发、解决冲突、分支合并、gitlab使用、远程仓库回滚、为开源项目贡献代码、git工作流,git pull和git fetch,变基
  • ims-go项目搭建
  • 2022最新版-李宏毅机器学习深度学习课程-P26 Recurrent Neural Network
  • 【Qt控件之QButtonGroup】概述及使用
  • 【开源分享】基于Html开发的房贷计算器,模仿新浪财经
  • ftp文件上传缓慢问题
  • 【周末闲谈】VR新视界,“眼”见未来
  • CSRF和XSS是什么?
  • 【Machine Learning】01-Supervised learning