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

链表的面试题2反转单链表

 

目录

       反转链表

迭代

递归


好,我们接着来看第二题

反转链表

老规矩,放上链接。

https://leetcode.cn/problems/reverse-linked-list/description/

这道题和上一道的删除特定值的题目有什么区别呢?能不能用上一篇文章讲到的五种办法都放到这里来?好像是可以的。

迭代

我们先来看迭代,上一篇我们已经知道了,迭代是不停的去执行语句。那么这里我们需要迭代的是什么呢?那我们是不是就是要把后一个节点的指针域指向前一个结点?但是这样可行吗?,那会出现什么问题?

诶,就是会找不到下一个节点。但是这里还有一个细节,那第一个节点的指针域呢?需要我们管吗?这当然是需要的。我们要知道前一个节点在我们逆置以后,那就变成尾巴节点了。它的指针域可是要为空的。所以我们在用迭代的时候要先存储前一个节点的指针域再存储后一个节点的指针。这样就可以了

struct ListNode* reverseList(struct ListNode* head) {struct ListNode* prev = NULL;struct ListNode* curr = head;while (curr) {struct ListNode* next = curr->next;curr->next = prev;prev = curr;curr = next;}return prev;
}

代码贴在这里,我们再看递归的方法:

递归

递归和迭代思想类似,也算是很好理解的方式,但是递归有一个点需要我们注意。递归的时候的语句需要让我们的第一个节点的指针域为空,不然就会形成环。

当然我们在递归的内部是动不了手段的。我们需要的是在断言的条件上加上返回的条件。

struct ListNode* reverseList(struct ListNode* head) {if (head == NULL || head->next == NULL) {return head;}struct ListNode* newHead = reverseList(head->next);head->next->next = head;head->next = NULL;return newHead;
}

这样,我们的整个逻辑就完整了。

这里我们在想一种方法,双指针能不能做?双指针在后面解决很多问题的时候不可谓不是利器啊。

既然如此,那我们为什么不用。但是仔细想想,双指针在实际运行的过程中,不就和我们的迭代重合了?我迭代重新创建两个变量 不就代表了我的双指针的作用吗?

所以我其实很喜欢给大家我对于这些简单题的见解。因为越做,一道道题都慢慢想,你会发现自己越来越有学习编程的信心,编程难就是难在去钻研然后融合成自己的东西。

时至今日,我自己写的博客我自己还是一直在更改,一直在复习,每次都有新的见解。

加油,与诸君共勉!

如果你觉得对你有帮助,可以点赞关注加收藏,感谢您的阅读,我们下一篇文章再见。

一步步来,总会学会的,首先要懂思路,才能有东西写。

相关文章:

  • 从0开始学习大模型--Day2--大模型的工作流程以及初始Agent
  • 码蹄集——直角坐标到极坐标的转换、射线、线段
  • 2018年ASOC SCI1区TOP,混合灰狼算法HBBOG,深度解析+性能实测
  • 机器视觉框架源码——解读3(常用的资源和样式)
  • 在c++中老是碰到string,这是什么意思?
  • 大模型系列(三)--- GPT1论文研读
  • 若依微服务框架在docker-compose中部署
  • IDEA 安装 SpotBugs 插件超简单教程
  • 【AI提示词】类比思维专家
  • 产品经理如何借助 DeepSeek 提升工作效能
  • 可炫可转防丢帽 金士顿DTXS闪存盘致敬经典
  • Git 使用的全流程以及SourceTree工具的使用操作和忽略文件的配置
  • C/C++工程中的Plugin机制设计与Python实现
  • 端口隔离 实验 讲解
  • AIDC智算中心建设:存储核心技术解析
  • 【教学类-34-11】20250506异形拼图块(圆形、三角、正方,椭圆/半圆)的中2班幼儿偏好性测试(HTML)
  • C++内联函数
  • 实验三 数据查询
  • vue2+element实现Table表格嵌套输入框、选择器、日期选择器、表单弹出窗组件的行内编辑功能
  • 深度学习在油气地震资料反卷积中的应用
  • 四问当前旱情:还会持续多久
  • 安徽六安原市长潘东旭,已任省市场监督管理局党组书记、局长
  • 动物只有在被认为对人类有用时,它们的建筑才会被特别设计
  • 印官员称巴基斯坦在克什米尔实控线附近开火已致7死38伤
  • 蓝佛安:中方将采取更加积极有为的宏观政策,有信心实现2025年的5%左右增长目标
  • 江西省文化和旅游厅厅长梅亦已任省委宣传部副部长