力扣反转链表

class Solution {

public:

    ListNode* reverseList(ListNode* head) {

        ListNode* prev = nullptr;//定义前节点和当前节点

        ListNode* curr = head;

        while (curr) {

            ListNode* next = curr->next

            curr->next = prev;

            prev = curr;

            curr = next;

        }

        return prev;//循环结束,返回prev节点即可,不返回curr节点因为while循环退出时curr已经变为空节点了

    }

};

class Solution {

public:

    ListNode* reverseList(ListNode* head) {

   

        if (head == NULL || head->next == NULL)     // 空链或只有一个结点,直接返回头指针

        {

            return head;           

        }

        else                                        // 有两个以上结点

        {

            ListNode *new_head = reverseList(head->next); // 反转以第二个结点为头的子链表

           

            // head->next 此时指向子链表的最后一个结点

           

            // 将之前的头结点放入子链尾

            head->next->next = head;

            head->next = NULL;

           

            return new_head;

        }

    }

};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值