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

dfs(十三)206. 反转链表

206. 反转链表

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

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]

提示:

  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000

进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

 

先使用dfs访问到最后一个元素,然后用newhead保存新的头结点,最后使用head修改当前指针的后一个指针指向实现逆序操作。

/**
 * 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;  返回的是我们新建的newhead
    }

};

http://www.dtcms.com/a/73346.html

相关文章:

  • 整合Thymeleaf
  • 动静态库区别
  • 算法题(100):腐烂的苹果
  • js 给元素添加点击事件的方法
  • 【测试篇】关于allpairs实现正交测试用例保姆级讲解,以及常见的错误问题
  • EagleTrader为何重申重要数据前后2分钟禁止交易?
  • 【算法学习计划】动态规划 -- 回文串问题
  • React前端开发中实现断点续传
  • CSS - Pseudo-classes(伪类选择器)
  • TypeScript类型兼容性 vs JavaScript动态类型:深入对比解析
  • 共享经济再中介化进程中的技术创新与模式重构研究——以“开源AI智能名片链动2+1模式S2B2C商城小程序“为例
  • python | 输入日期,判断这一天是这一年的第几天
  • 分布式 IO 模块:氢能源安全高效储运的智能钥匙
  • 项目中使用柯里化函数
  • 优选算法系列(2.滑动窗口 _ 上)
  • 基于CPLD+MCU的3U机箱数字量输入采集板DI,主要针对标准DC110V开关量信号进行采集处理
  • 【CPU】CPU多级缓存和MESI一致性协议
  • 基于System V的共享内存函数使用指南
  • 云原生混合云管理:跨集群智能编排引擎
  • NumPy系列 - 创建矩阵
  • 青少年编程与数学 02-011 MySQL数据库应用 02课题、MySQL数据库安装
  • 微服务架构中10个常用的设计模式
  • GUI编程和TKinter介绍
  • MongoDB下载安装
  • 【MySQL】(6) 数据库约束
  • 使用unsloth进行grpo强化学习训练
  • html5制作2048游戏开发心得与技术分享
  • 仿最美博客POETIZE(简易版)
  • Android (Kotlin) 高版本 DownloadManager 封装工具类,支持 APK 断点续传与自动安装
  • Python基于深度学习的多模态人脸情绪识别研究与实现