LeetCode 92. Reverse Linked List II

来源:互联网 发布:淘宝店铺首页分析报告 编辑:程序博客网 时间:2024/05/16 14:59

Reverse a linked list from position m to n. Do it in-place and in one-pass.

For example:
Given 1->2->3->4->5->NULLm = 2 and n = 4,

return 1->4->3->2->5->NULL.

Note:
Given mn satisfy the following condition:

1 ≤ m ≤ n ≤ length of list.

answer:

class Solution {public:    ListNode* reverseBetween(ListNode* head, int m, int n) {        int i = 1;        ListNode preNode(0);        ListNode * pre = & preNode, * index = head, * start = head;        pre->next = head;        while(i < m){            pre = index;            index = index->next;            i ++;        }        start = index;        while(i < n){            index = index->next;            start->next = index->next;            index->next = pre->next;            pre->next = index;            index = start;            //start = pre->next;            i ++;        }        return preNode.next;    }};


0 0