美文网首页
92.反向链表

92.反向链表

作者: HITZGD | 来源:发表于2018-11-22 21:24 被阅读0次

题目
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

说明:
1 ≤ m ≤ n ≤ 链表长度。

示例:
输入: 1->2->3->4->5->NULL, m = 2, n = 4
输出: 1->4->3->2->5->NULL

思路
参考简书用户安全地带的解法https://www.jianshu.com/p/fbe6012c9e52

#include <cstddef>

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};

class Solution {
public:
    ListNode* reverseBetween(ListNode* head, int m, int n) {
        if (head == NULL) return NULL;
        ListNode* dummy = new ListNode(0);
        dummy->next = head;
        ListNode* previous = dummy;
        for (int i = 0; i < m - 1; i++)
        {
            previous = previous->next;
        }
        ListNode* current = previous->next;
        ListNode* post = current->next;
        for (int i = 0; i < n - m; i++)
        {
            current->next = post->next;
            post->next = previous->next;
            previous->next = post;
            post = current->next;
        }
        return dummy->next;
    }
};

相关文章

  • 92.反向链表

    题目反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 示例:输入...

  • 链表中间段逆序

    LeetCode 92. Reverse Linked List II已知链表头节点指针head,将链表从位置m到...

  • Leetcode日记:92&206.反转链表

    Leetcode日记:92&206.反转链表 92.反转链表其中一段 Reverse a linked list ...

  • LeetCode题集-链表

    链表逆序 206. Reverse Linked List 92. Reverse Linked List II ...

  • 92. Reverse Linked List II 反向链表I

    题目 给定一个单链表 head 和两个整数 left 和 right,并且 left <= right,将 lef...

  • LeetCode 92. 反转链表 II

    92. 反转链表 II 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ ...

  • 2.链表(二)

    题目汇总https://leetcode-cn.com/tag/linked-list/92. 反转链表 II中等...

  • 每日一题1-反转链表 II

    92. 反转链表 II 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链...

  • 链表

    模板 多次删除 逆序(反向)链表

  • 链表:92.反转链表II

    /** 题目 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 ...

网友评论

      本文标题:92.反向链表

      本文链接:https://www.haomeiwen.com/subject/hmmrqqtx.html