[TOP101]题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
#include <cstddef>
// 定义链表节点结构体
// struct ListNode {
// int val; // 节点的值
// ListNode* next; // 指向下一个节点的指针
// ListNode(int x) : val(x),
// next(nullptr) {} // 构造函数,初始化节点值和指针
// };
// 解决方案类
class Solution {
public:
// 反转链表的方法
ListNode* ReverseList(ListNode* head) {
ListNode* pre = nullptr; // 初始化前一个节点指针为 nullptr
ListNode* next = nullptr; // 初始化下一个节点指针为 nullptr
while (head != nullptr) { // 当前节点不为空时,进行循环
next = head->next; // 保存下一个节点
head->next = pre; // 将当前节点的 next 指向前一个节点,实现反转
pre = head; // 前一个节点移动到当前节点
head = next; // 当前节点移动到下一个节点
}
return pre; // 返回反转后的链表头节点
}
};
