[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;               // 返回反转后的链表头节点
    }
};

全部评论

相关推荐

刷牛客的我很豁达:你是不是对算法有什么误解,你没手握两篇顶刊顶会,还想搞算法岗,有顶刊顶会在算法岗算才入门
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务