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

leetcode_206 反转链表

1. 题意

原地反转链表,非常经典的一道题。

2. 解决

2.1 非递归

非递归的比较好理解;链表需要维护前驱后继两个信息,当我们要更改后继时,先要把原来的后继先存起来。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {// A->B->C// next = getNext;// cur->next = pre// pre = cur;// cur =  next;// //          pre//          |//          V//  null <- A    B->C // null <- A     ListNode *pre = nullptr;ListNode *cur = head;while ( cur ) {ListNode *nxt = cur->next;cur->next = pre;pre = cur;cur = nxt;}return pre;}};
2.2 递归

递归的比较难理解一些 。

由于返回的是翻转后的头节点,因此需要不断的递归到没有后继节点的最后一个节点, 它就是反转后链表的头节点了。

返回的链表的最后 一个节点是head->next , 将它的指向改成当前节点。同时我们还需要将当前节点的next域置空,否则无法将原先的头指空。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {// A->B->Cif ( head == nullptr || head->next == nullptr) {return head;}ListNode *newHead = reverseList( head->next );ListNode *newListTail = head->next;newListTail->next = head;head->next = nullptr;return newHead;}};

3. 参考

[lc206]

相关文章:

  • Kubernetes指标实现有效的集群监控和优化
  • 【AUTOSAR COM】E2E的不同profiles的含义以及应用
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月6日第100弹
  • 鸿蒙开发 获取当前页面的路径和名字
  • k8s下离线搭建elasticsearch
  • uni-app 项目支持 vue 3.0 详解及版本升级方案?
  • 在uni-app中如何从Options API迁移到Composition API?
  • Linux 基础IO(中)
  • 【Linux】(1)—进程概念-④fork、僵尸进程、孤儿进程
  • daz3d + PBRSkin (MDL)+ SSS
  • Python爬虫实战:研究mechanize库相关技术
  • spring:实例化类过程中方法执行顺序。
  • tpc udp http
  • 鸿蒙开发——如何修改模拟器的显示图标/标题
  • React-表单受控绑定和获取Dom元素
  • ​​高频通信与航天电子的材料革命:猎板PCB高端压合基材技术解析​​
  • ✅ 常用 Java HTTP 客户端汇总及使用示例
  • C#子线程更新主线程UI及委托回调使用示例
  • openLayers实现实时轨迹
  • 【HarmonyOS 5】出行导航开发实践介绍以及详细案例
  • 合肥专业做公司网站/做一个企业网站大概需要多少钱
  • 网站运营seo招聘/整合营销方案怎么写
  • 做外卖那些网站好/广州网站优化方式
  • 网站收录低的原因/推广普通话的意义50字
  • 做一家购物网站要多少钱/新闻株洲最新
  • 长沙网站建设设计/苹果被曝开发搜索引擎对标谷歌