链接:https://leetcode-cn.com/problems/reverse-linked-list/

题目描述

反转一个单链表。

示例

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

题解

两种方法:

(1)迭代。比较简单,直接上代码。

(2)递归。

问题转化为:假设链表的其余部分已经被反转,如何反转它前面的部分。

代码

(1)迭代

// C++/*** 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) {ListNode *pre = NULL, *cur = head;while (cur != NULL){ListNode *nextNode = cur->next;cur->next = pre;pre = cur;cur = nextNode;}return pre;}
};

(2)递归

// C++/*** 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 || !head->next)return head;ListNode *newHead = reverseList(head->next);head->next->next = head;head->next = nullptr;return newHead;}
};

【LeetCode】206. 反转链表相关推荐

  1. LeetCode 206. 反转链表 Reverse Linked List

    5-1 链表,在节点间穿针引线 Reverse Linked List 题目: LeetCode 206. 反转链表 反转一个单链表. 示例: 输入: 1->2->3->4-> ...

  2. LeetCode 206. 反转链表(Reverse Linked List) 16

    206. 反转链表 206. Reverse Linked List 题目描述 反转一个单链表. 每日一算法2019/5/19Day 16LeetCode206. Reverse Linked Lis ...

  3. LeetCode 206. 反转链表

    206. 反转链表 难度 简单 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输 ...

  4. leetcode - 206. 反转链表

    反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代 ...

  5. 【Java】LeetCode 206 反转链表

    题目 :给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 解题思路 : 1.根据以上代码 ,来进行反转链表的操作: 2.最后实现的效果为: 具体思路: 1.首先判断如果链表为空的话, ...

  6. 26. Leetcode 206. 反转链表 (链表-反转链表)

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表.示例 1:输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2:输入:head = [1,2] 输出:[ ...

  7. [leetcode] 206.反转链表

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...

  8. LeetCode 206. 反转链表 思考分析

    题目 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可 ...

  9. LeetCode 206. 反转链表 双指针法 辅助结点 递归

    题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶: ...

  10. LeetCode 206.反转链表

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...

最新文章

  1. Hdu 4920矩阵乘法(内存访问的讲究)
  2. JS 设计模式四 -- 模块模式
  3. Java中equlas和==的区别
  4. 网速慢?不!可能是DNS出了问题! 公共DNS优选之 BAT 百度、腾讯、阿里、谷歌DNS哪个更快?
  5. 【项目 报错】 项目启动,内存溢出 可能出现的各种报错
  6. 构建插件式的应用程序框架(一)----开篇
  7. [七]JavaIO之 PipedInputStream 和 PipedInputStream
  8. Xamarin Android中引用Jar包的方法
  9. linux cam软件,基于Linux图形交互式线切割CAM软件实现技术研究
  10. WebGrid 在asp.net mvc中的使用和理解(译)
  11. 无线定位服务器,[浅谈无线定位技术] 无线定位技术有哪些
  12. 2022: Python下载安装教程
  13. html超链接qq,超链接打开qq对话框
  14. Windows无法安装到磁盘磁盘具有MBR分区表的解决
  15. VLAN划分-思科模拟器-基础回顾
  16. React Native 超长列表优化方案
  17. Microsoft Word 标题编号变成黑块的解决方法
  18. xcopy 跳过已经存在的_视频课怎么区分数学一二三?考研英语怎么复习?恋练有词句子部分直接跳过?...
  19. OA系统是什么意思?企业为什么要用OA办公系统软件?
  20. css里外边框与内边框_基本CSS边框

热门文章

  1. android studio 网络定位城市名称
  2. 2022年湖北省科技进步奖详细解答,该奖项申报条件以及奖励补贴具体情况解析
  3. 米家空气净化器4lite怎么样
  4. HTML下拉列表的左右选择
  5. 为什么要对新入行的人爱理不理?
  6. Proof (of knowledge) of exponentiation
  7. 上班族如何利用业余时间提升收入?
  8. ARM处理器——I.MX6ULL学习总结
  9. 基于Marlin固件库桌面3D打印机软件开发
  10. 转录组分析流程|TransDecoder预测转录本的开放阅读框(二)