您的位置:首页 > 其它

206. Reverse Linked List&&92. Reverse Linked List II

2016-05-17 14:53 288 查看
依然不想赘述题目……

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: