leetcode 206 反转链表

Posted 苛性氢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 206 反转链表相关的知识,希望对你有一定的参考价值。

不会。

 

递归。有点慢,18ms。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        
        if(head==NULL||head->next==NULL){
            return head;
        }
        
        ListNode * p=reverseList(head->next);
        head->next->next=head;
        head->next=NULL;
        return p;
        
            
    }
};

来源:https://blog.csdn.net/geekmanong/article/details/51097196

 

ListNode* reverseList(ListNode* head) {
    ListNode* newHead = NULL;
    while (head) {
        ListNode* nextNode = head->next;
        head->next = newHead;
        newHead = head;
        head = nextNode;
    }
    return newHead;
}

9ms,来自:https://blog.csdn.net/NoMasp/article/details/50514593

 快了一倍?

 

 

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if (head == nullptr) {
            return nullptr;
        }
        
        ListNode *pre = nullptr, *next = nullptr;
        
        while (head != nullptr) {
            next = head->next;
            head->next = pre;
            pre  = head;
            head = next;
        }
        
        return pre;
    }
};

最快的。7ms?

 

以上是关于leetcode 206 反转链表的主要内容,如果未能解决你的问题,请参考以下文章

剑指offerJZ15——反转链表。leetcode206.反转链表

LeetCode #206 链表反转

206. 反转链表

206. 反转链表

leetcode_数据结构_链表_206反转链表(重点:递归)

206. 反转链表(递归)