题解 | #链表内指定区间反转#

链表内指定区间反转

http://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

/**
 * struct ListNode {
 *    int val;
 *    struct ListNode *next;
 * };
 */

class Solution {
public:
    ListNode *reverseBetween(ListNode *head, int m, int n) {
        ListNode *L = new ListNode(0);
        L->next = head;
        ListNode *p = L;
        ListNode *q = head;
        for(int i=1;i<m;i++) {
            p = q;
            q = q->next;  // 找到反转的起始位置
        }
        for(int i=0;i<n-m;i++) { // 反转
            ListNode *t = q->next;
            q->next = t->next;
            t->next = p->next;
            p->next = t;
        }
        return L->next;
    }
};
全部评论

相关推荐

ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
一tiao酸菜鱼:秋招还没正式开始呢,就准备有结果了。。。。?
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务