【力扣hot100题】反转链表(18)

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

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

cpp 复制代码
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;
    }
};
相关推荐
NAGNIP8 小时前
机器学习特征工程中的特征选择
算法·面试
l1t9 小时前
DeepSeek辅助编写的利用位掩码填充唯一候选数方法求解数独SQL
数据库·sql·算法·postgresql
Z1Jxxx9 小时前
反序数反序数
数据结构·c++·算法
副露のmagic9 小时前
更弱智的算法学习 day25
python·学习·算法
求梦8209 小时前
【力扣hot100题】移动零(1)
算法·leetcode·职场和发展
NAGNIP9 小时前
机器学习中的数据预处理方法大全!
算法·面试
涛涛北京9 小时前
Soft-Actor-Critic算法-连续环境
算法
vyuvyucd9 小时前
C++排序算法全解析
java·数据结构·算法
胡萝卜不甜9 小时前
算法宗门---迪杰斯特拉Dijkstra(最短路径算法)
算法