Leetcode 92. Reverse Linked List II (Medium) (cpp)

    xiaoxiao2025-06-18  3

    Leetcode 92. Reverse Linked List II (Medium) (cpp)

    Tag: Linked List

    Difficulty: Medium

    /* 92. Reverse Linked List II (Medium) 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 ≤ m ≤ n ≤ length of list. */ /** * 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 *head_new = new ListNode(0); head_new -> next = head; ListNode *p = head_new; int i = 1; while (i < n) { if (i++ < m) { p = head; head = head -> next; } else { ListNode *post = head -> next; head -> next = head -> next -> next; post -> next = p -> next; p -> next = post; } } return head_new -> next; } };

    转载请注明原文地址: https://ju.6miu.com/read-1300090.html
    最新回复(0)