题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

三指针反转链表
还可以使用栈来解此题

#include "../Utils/ListNode.h"
using namespace std;
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if (head == nullptr) return nullptr;
        ListNode *left = nullptr, *middle = head, *right = head->next;
        while (right != nullptr) {
            middle->next = left;
            left = middle;
            middle = right;
            right = right->next;
        }
        middle->next = left;
        return middle;
    }
};
int main() {
    ListNode *head = new ListNode(0);
    ListNode *n1 = new ListNode(1);
    ListNode *n2 = new ListNode(2);
    ListNode *n3 = new ListNode(3);
    ListNode *n4 = new ListNode(4);
//    head->next = n1;
//    n1->next = n2;
//    n2->next = n3;
//    n3->next = n4;
    Solution s;
    s.reverseList(head);
    return 0;
}
全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务