難度簡單42
定義一個函數,輸入一個鏈表的頭節點,反轉該鏈表並輸出反轉後鏈表的頭節點
示例:
輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL
限制:
0 <= 節點個數 <= 5000
/**
* 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;
ListNode* p1=head;
ListNode* p2=head->next;
p1->next = nullptr;
ListNode* p3;
while(p2 != NULL)
{
p3 = p2->next;
p2->next = p1;
p1 = p2;
p2 = p3;
}
return p1;
}
};