本来第一个想用reverse函数 百度了一下和sort函数一样的
所以查查了迭代和递归
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(!head){
return nullptr;
}
ListNode* first = head;
ListNode* need = head->next;
while(need != nullptr){
first->next = need->next;
ListNode* temp = need->next;
need->next = head;
head = need;
need = temp;
}
return head;
}
};
时间复杂度是o(logn)
空间复杂度是o(1)