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

leetcode-代码随想录-链表-翻转链表

题目

链接:206. 反转链表 - 力扣(LeetCode)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
image

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        
    }
};
思路 & 代码
双指针法
  1. 双指针:①cur指针指向头节点;②pre指针初始化为 NULL。
  2. 反转:
    • 先保存 cur->next:temp = cur->next;
    • 反转:pre = cur->next;
    • 移动:先移动pre, pre = cur;再移动cur, cur = temp;
  3. 结束条件:cur == NULL
  4. 返回链表:return pre;
    image.png
    image.png
    image.png
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* cur = head;
        ListNode* pre = nullptr;

        while(cur){
            ListNode* temp = cur->next;
            cur->next = pre;
            pre = cur;
            cur = temp;
        }
        return pre;
    }
};
递归法

递归三部曲:

  1. 确定递归函数的参数和返回值
    • 参数:需要在递归中进行处理的
    • 返回值:根据返回值来确定返回类型
  2. 确定终止条件
  3. 确定单层递归逻辑
    • 确定每一层递归需要处理的信息。就是重复调用自己的过程。

image.png

class Solution {
public:
    ListNode* reversed(ListNode* cur, ListNode* pre){
        if(cur == nullptr) return pre;
        ListNode* temp = cur->next;
        cur->next = pre;
        return reversed(temp,cur);
    }

    ListNode* reverseList(ListNode* head) {
        return reversed(head, nullptr);
    }
};
http://www.dtcms.com/a/111918.html

相关文章:

  • 框架PasteForm实际开发案例,换个口味显示数据,支持echarts,只需要标记几个特性即可在管理端显示(2)
  • Python办公自动化(2)对wordpdf的操作
  • 青少年编程与数学 02-015 大学数学知识点 04课题、微积分
  • 如何判断多个点组成的3维面不是平的,如果不是平的,如何拆分成多个平面
  • 二叉树 递归
  • Linux操作系统 4.Linux实用操作
  • 《新疆建筑安全员C证》考试信息
  • ttkbootstrap 实现日期选择器, 开始和结束时间
  • OrangePi5Plus开发板不能正确识别USB 3.0 设备 (绿联HUB和Camera)
  • Flutter性能优化细节
  • 分子生成的深层次层次变分自编码器 - DrugHIVE 测评
  • Jetpack Compose CompositionLocal 深入解析:局部参数透传实践
  • Linux信号处理解析:从入门到实战
  • 星途(3)
  • C/C++的条件编译
  • 【Tauri2】014——简单使用listen和emit
  • DuckDB系列教程:如何分析Parquet文件
  • Linux中的调试器gdb与冯·诺伊曼体系
  • 使用MCP方案与Claude实现虚幻引擎自动化游戏开发
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • 【LLM】使用MySQL MCP Server让大模型轻松操作本地数据库
  • JSON-lib考古现场:在2025年打开赛博古董店的奇妙冒险
  • 如何分析 jstat 统计来定位 GC?
  • Navicat17详细安装教程(附最新版本安装包和补丁)2025最详细图文教程安装手册
  • 运算放大器(五)电压比较器
  • WSL使用经验
  • 从代码学习深度学习 - GRU PyTorch版
  • 基于大模型与动态接口调用的智能系统(知识库实现)
  • 动态规划似包非包系列一>组合总和IIV
  • leetcode117 填充每个节点的下一个右侧节点指针2