leetcode-206反转链表

反转链表

方法一:迭代法

/**
 * 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;      //当前节点的前驱节点
        ListNode*now=head;      //当前节点
        while(now!=NULL){
            ListNode*next=now->next;        //记住当前节点的后继节点,防止丢失后面的链表
            //接下来处理当前节点,反转指针指向
            now->next=pre;      //让当前节点的next指针指向pre
            pre=now;        //pre指针后移
            now=next;       //now指针后移
        }
        return pre;
    }
};
posted @   陈陈相因的陈  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示