前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 0092 - Reverse Linked List II

LeetCode 0092 - Reverse Linked List II

作者头像
Reck Zhang
发布2021-08-11 10:52:02
1690
发布2021-08-11 10:52:02
举报
文章被收录于专栏:Reck Zhang

Reverse Linked List II

Desicription

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->NULL, m = 2 and n = 4,

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

Note: Given m, n satisfy the following condition: 1 ≤ mn ≤ length of list.

Solution

代码语言:javascript
复制
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseBetween(ListNode* head, int m, int n) {
        ListNode* res = new ListNode(0);
        res->next = head;
        ListNode* cur = res;
        int cnt = 0;
        while(cur) {
            if(cnt + 1 == m) {
                ListNode* tmp = cur->next;
                vector<int> vec;
                while(cnt != n){
                    vec.push_back(tmp->val);
                    tmp = tmp->next, cnt++;
                }
                for(int i = vec.size() - 1; i >= 0; i--)
                    cur->next = new ListNode(vec[i]), cur = cur->next;
                cur->next = tmp;
                return res->next;
            }
            cur = cur->next, cnt++;
        }
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Reverse Linked List II
    • Desicription
      • Solution
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档