前言
本文将围绕【反转链表】问题展开详细论述。
采用【递归法】【迭代法】
同时,还将进一步升级该问题,讨论【K个一组翻转链表】
一、如何理解 反转链表?
题目链接: [点击跳转] Leetcode 206. 反转链表

二、反转链表
1.方法一(递归)
运用递归的方法来实现,首先我们应该考虑:递归哪个部分最终可以输出反转后的链表?
我们可以将递归函数内容设定为:每次递归将两个节点的连接方向反转。
比如原来1->2,现在变为2->1.
代码如下:
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if (!head || !head->next) {
return head;
}
ListNode* tre = reverseList(head->next);
head->next->next = head;
head->next = nullptr;
return tre;

最低0.47元/天 解锁文章
1587

被折叠的 条评论
为什么被折叠?



