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

Leetcode 206. 反转链表 迭代/递归

原题链接:Leetcode 206. 反转链表

在这里插入图片描述

解法一:迭代

/*** 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) {if(head==nullptr) return nullptr;ListNode* pre = nullptr;ListNode* now = head;while(now){ListNode* next = now->next;now->next = pre;pre = now;now = next;}return pre;}
};

解法二:递归

/*** 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) {if(head==nullptr || head->next==nullptr) return head;// 「递」到链表末尾,拿到新链表的头节点(旧链表的尾节点)ListNode* newhead = reverseList(head->next);// 让下一个节点指向自己head->next->next = head;// 断开原来的指针head->next = nullptr;return newhead;}
};
// 链表:1 -> 2 -> 3 -> 4 -> 5
// 递归调用顺序:
// reverseList(1)
//     reverseList(2)
//         reverseList(3)
//             reverseList(4)
//                 reverseList(5)
// 5->next==nullptr,返回 5
// newhead=5,head=4, 4->next=5, 5->next = 4(反转),4->next=nullptr
// newhead=5,head=3, 3->next=4, 4->next = 3(反转),3->next=nullptr
// newhead=5,head=2, 2->next=3, 3->next = 2(反转),2->next=nullptr
// newhead=5,head=1, 1->next=2, 2->next = 1(反转),1->next=nullptr
// return  newhead=5

文章转载自:

http://fjhc90mv.bpwfr.cn
http://J7jWpZ7I.bpwfr.cn
http://6uxYa99C.bpwfr.cn
http://NgSpsiJF.bpwfr.cn
http://JNnmpztJ.bpwfr.cn
http://rSKCyJrX.bpwfr.cn
http://F3Kt7VeY.bpwfr.cn
http://NGnFEKpA.bpwfr.cn
http://1kQJcdZV.bpwfr.cn
http://pvyaCjr5.bpwfr.cn
http://gaUmg2ht.bpwfr.cn
http://GLSS3MPS.bpwfr.cn
http://bKH9KiSw.bpwfr.cn
http://lLkJNCLU.bpwfr.cn
http://Q81t2j0h.bpwfr.cn
http://TrqFH1EY.bpwfr.cn
http://lveUhRVB.bpwfr.cn
http://DN1QjX0Z.bpwfr.cn
http://rFNrAn7C.bpwfr.cn
http://6HEmPiYN.bpwfr.cn
http://Ve92JJqZ.bpwfr.cn
http://CJInnEfI.bpwfr.cn
http://XJsGYhcw.bpwfr.cn
http://R6CWIn8Q.bpwfr.cn
http://TzgdEqHe.bpwfr.cn
http://ZpnP1J6u.bpwfr.cn
http://bBGy7GDk.bpwfr.cn
http://W9trH7eK.bpwfr.cn
http://5ggq9pPT.bpwfr.cn
http://2NKWksid.bpwfr.cn
http://www.dtcms.com/a/367650.html

相关文章:

  • RFID+工业互联网:汽车全景天幕全生命周期智能检测体系构建
  • javaweb基础第一天总结(HTML-CSS)
  • Django全局异常处理全攻略
  • 阵列信号处理之均匀面阵波束合成方向图的绘制与特点解读
  • 钉钉 AI 深度赋能制造业 LTC 全流程:以钉钉宜搭、Teambition 为例
  • JS对象进阶
  • 【109】基于51单片机自动感应迎宾门【Proteus仿真+Keil程序+报告+原理图】
  • 来自AI的背包系统
  • 【操作系统-Day 24】告别信号量噩梦:一文搞懂高级同步工具——管程 (Monitor)
  • 前端url参数拼接和提取
  • Qt 中添加并使用自定义 TTF 字体(以 Transformers Movie 字体为例)
  • 基于STM32的智能家居环境监控系统设计
  • 什么是静态住宅IP 跨境电商为什么要用静态住宅IP
  • 3 步搞定顶刊科研插图!用 GPT-5 反推提示词,Nano Banana 模型一键出图,附实操演示
  • Tengine/Nginx 安装以及模块查看与扩展
  • 新一代实时检测工具——YOLOv13本地部署教程,复杂场景,一目了然!
  • html学习:
  • 多线程顺序打印ABC的两种实现方式:synchronized与Lock机制
  • 苍穹外卖优化过程遇到的问题
  • android源码角度分析Handler机制
  • 25高教社杯数模国赛【E题保姆级思路+问题分析】
  • 政务级数据安全!小陌GEO引擎的私有化部署实践指南
  • 卫星通信+地面网络融合 Sivers半导体毫米波技术打通智慧交通最后一公里
  • 理解进程栈内存的使用
  • C4.5决策树(信息增益率)、CART决策树(基尼指数)、CART回归树、决策树剪枝
  • 前端vue常见标签属性及作用解析
  • Vue基础知识-脚手架开发-子传父-props回调函数实现和自定义事件($on绑定、$emit触发、$off解绑)实现
  • 铭记抗战烽火史,科技强企筑强国 | 金智维开展抗战80周年主题系列活动
  • 无人机信号防干扰技术难点分析
  • 企业白名单实现【使用拦截器】