依然不想赘述题目……
206一开始想了有点久,因为网上很多答案是没有 * 的,就像这样 ListNode pre = head
宝宝就有点没拐过弯来。改天要复习一下*和&。
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(head == NULL || head->next == NULL) return head;
ListNode* dummy = new ListNode(0);
dummy->next = head;
ListNode* pre = dummy;
ListNode* cur = head;
while(cur->next != NULL ){
ListNode* nxt = cur->next;
cur->next = nxt->next;
nxt->next = pre->next;
pre->next = nxt;
}
return dummy->next;
}
};
207也写了很久……WA无数次……是啦我就是渣渣
class Solution {
public:
ListNode* reverseBetween(ListNode* head, int m, int n) {
if(head == NULL) return NULL;
ListNode* dummy = new ListNode(0);
dummy->next = head;
ListNode* pre = dummy;
for(int i = 1 ; i < m ; ++i){
pre = pre->next;
}
ListNode* cur = pre->next;
for(int i = m; i < n; ++ i){
ListNode* nxt = cur->next;
cur->next = nxt->next;
nxt->next = pre->next;
pre->next = nxt;
}
return dummy->next;
}
};