c_cpp 206.反向链接清单

Posted

tags:

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

//使用头插入的方式,建立一个新的链表
// 12 ms
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode *temp = nullptr,*nextNode = nullptr;
        while(head){
            nextNode = head->next;
            head->next = temp;
            temp = head;
            head = nextNode;
        }
        return temp;
    }
};
//使用栈的方式进行逆序
//4 ms
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(!head) 
            return head;
        stack<int> nodes;
        ListNode *p = head;
        ListNode *q = head;
        while(p){
            nodes.push(p->val);
            p = p->next;
        }
        while(!nodes.empty()){
            q->val = nodes.top();
            // cout << q->val << " ";
            q = q->next;
            nodes.pop();
        }
        return head;
    }
};

以上是关于c_cpp 206.反向链接清单的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 92.反向链接清单II - 中 - 2018.7.31

java 206.反向链接列表(#1递归).java

java 206.反向链接列表(#1递归).java

java 206.反向链接列表(#1递归).java

java 206.反向链接列表(#1递归).java

java 206.反向链接列表(#1递归).java