翻转链表

样例

输入:1->2->3->4->5->NULL

输出:5->4->3->2->1->NULL
/**
 * 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||!head->next)return head;
        auto p=head,q=p->next;
        while(q)
        {
            auto o=q->next;
            q->next=p;
            p=q,q=o;
        }
        head->next=NULL;
        return p;
    }
};


 

 
posted @ 2020-05-10 22:36  我怎么什么都不会?  阅读(99)  评论(0)    收藏  举报