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

链表内指定区间反转

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;
    }
};
全部评论

相关推荐

球球offer到我邮箱吧:同测评了一个月 亏我笔试还AK了
投递米哈游等公司10个岗位 > 米哈游求职进展汇总
点赞 评论 收藏
分享
03-28 19:11
铜陵学院 C++
有礼貌的山羊追赶太阳:太典了,连笔试都没有开始就因为HC满了而结束了,而且还卡你不让你再投其他部门的。
点赞 评论 收藏
分享
03-26 22:27
已编辑
中南大学 Java
点赞 评论 收藏
分享
04-02 22:40
已编辑
电子科技大学 后端
谢谢大家啦!!!
坚定的芭乐反对画饼_许愿Offer版:有鹅选鹅,没鹅延毕
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务