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

每日OJ题_算法_递归③力扣206. 反转链表

目录

力扣206. 反转链表

解析代码


力扣206. 反转链表

206. 反转链表

LCR 024. 反转链表

难度 简单

给你单链表的头节点 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

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

/*** 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) {}
};

解析代码

这次循环迭代也写过了,且用循环更好,但练下递归:

左图就是把紫矿里的链表反转后链接到head,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后面的都递归好head->next->next = head; // 让叶子结点指回去head->next = nullptr; // 为了统一步骤return newHead;// 循环迭代法/*ListNode *newHead = nullptr, *cur = head;while(cur){ListNode *curNext = cur->next;cur->next = newHead; // 头插newHead = cur; // 往后走cur = curNext;}return newHead;*/}
};
http://www.lryc.cn/news/300802.html

相关文章:

  • 【Linux】指令 【whereis】
  • 牛客网SQL进阶128:未完成试卷数大于1的有效用户
  • GitHub的使用操作
  • 智慧公厕管理软件
  • 【30秒看懂大数据】数据中台
  • 【UI自动化测试技术】自动化测试研究:Python+Selenium+Pytest+Allure,详解UI自动化测试,了解元素交互的常用方法(精)(三)
  • GPT-4带来的思想火花
  • 使用倒模耳机壳UV村脂胶液制作舞台监听耳返入耳式耳机壳有哪些优点?
  • html从零开始8:css3新特性、动画、媒体查询、雪碧图、字体图标【搬代码】
  • HAL库 STM32驱动W25QXX驱动例程
  • C#入门及进阶|数组和集合(九):Stack类
  • 算法训练day31贪心算法理论基础Leetcode455分发饼干376摆动序列53最大子序和
  • Java与JavaScript同源不同性
  • 【JavaEE】spring boot快速上手
  • 【数据结构】16 二叉树的定义,性质,存储结构(以及先序、后序、中序遍历)
  • GPT SOVITS项目 一分钟克隆 (文字输出)
  • python34-Python列表和元组之加法
  • 不做程序员了(转岗半年后对程序员岗位的思考)
  • DS:八大排序之直接插入排序、希尔排序和选择排序
  • 【MySQL】-21 MySQL综合-8(MySQL默认值+MySQL非空约束+MySQL查看表中的约束)
  • 力扣hot3--并查集+哈希
  • 微信网页版能够使用(会顶掉微信app的登陆)
  • word软件中硬件图像加速有什么用处?禁用硬件图形加速(G)会影响word文档中插入图片的分辨率吗?
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • lua:有关表访问的metamethod
  • 【MySQL】索引事务
  • ChatGPT重大升级:能自动记住用户的习惯和喜好,用户有权决定是否共享数据给OpenAI
  • CSS设置盒子阴影
  • 文件夹删不掉,显示在另一个文件中打开怎么办
  • 阿里云香港云服务器租用_BGP多线网络_CN2高速线路测试