【LeetCode】206. 反转链表
链接: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. 反转链表相关推荐
- LeetCode 206. 反转链表 Reverse Linked List
5-1 链表,在节点间穿针引线 Reverse Linked List 题目: LeetCode 206. 反转链表 反转一个单链表. 示例: 输入: 1->2->3->4-> ...
- LeetCode 206. 反转链表(Reverse Linked List) 16
206. 反转链表 206. Reverse Linked List 题目描述 反转一个单链表. 每日一算法2019/5/19Day 16LeetCode206. Reverse Linked Lis ...
- LeetCode 206. 反转链表
206. 反转链表 难度 简单 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输 ...
- leetcode - 206. 反转链表
反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代 ...
- 【Java】LeetCode 206 反转链表
题目 :给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 解题思路 : 1.根据以上代码 ,来进行反转链表的操作: 2.最后实现的效果为: 具体思路: 1.首先判断如果链表为空的话, ...
- 26. Leetcode 206. 反转链表 (链表-反转链表)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表.示例 1:输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2:输入:head = [1,2] 输出:[ ...
- [leetcode] 206.反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...
- LeetCode 206. 反转链表 思考分析
题目 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可 ...
- LeetCode 206. 反转链表 双指针法 辅助结点 递归
题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶: ...
- LeetCode 206.反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...
最新文章
- Hdu 4920矩阵乘法(内存访问的讲究)
- JS 设计模式四 -- 模块模式
- Java中equlas和==的区别
- 网速慢?不!可能是DNS出了问题! 公共DNS优选之 BAT 百度、腾讯、阿里、谷歌DNS哪个更快?
- 【项目 报错】 项目启动,内存溢出 可能出现的各种报错
- 构建插件式的应用程序框架(一)----开篇
- [七]JavaIO之 PipedInputStream 和 PipedInputStream
- Xamarin Android中引用Jar包的方法
- linux cam软件,基于Linux图形交互式线切割CAM软件实现技术研究
- WebGrid 在asp.net mvc中的使用和理解(译)
- 无线定位服务器,[浅谈无线定位技术] 无线定位技术有哪些
- 2022: Python下载安装教程
- html超链接qq,超链接打开qq对话框
- Windows无法安装到磁盘磁盘具有MBR分区表的解决
- VLAN划分-思科模拟器-基础回顾
- React Native 超长列表优化方案
- Microsoft Word 标题编号变成黑块的解决方法
- xcopy 跳过已经存在的_视频课怎么区分数学一二三?考研英语怎么复习?恋练有词句子部分直接跳过?...
- OA系统是什么意思?企业为什么要用OA办公系统软件?
- css里外边框与内边框_基本CSS边框