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

链表内指定区间反转

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

class Solution {
public:
    ListNode* reverseBetween(ListNode* head, int m, int n) {
        auto* dum = new ListNode(0), * pre = dum;
        dum->next = head;
        for (int i = 1; i < m; ++i) {   // 找到前一个节点
            pre = pre->next;    
        }

        head = pre->next;
        ListNode* next = head->next, *last = nullptr, *st = head;
        for (int j = m; j < n; ++j) {
            head->next = last;
            last = head;
            head = next;
            next = next->next;
        }
        head->next = last;
        pre->next = head;
        st->next = next;
        return dum->next;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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