From 90437c0951a938cedd8ae1810a81e114c85cb35c Mon Sep 17 00:00:00 2001 From: Gautham Mallipeddi Date: Thu, 2 Mar 2023 18:28:57 +0530 Subject: [PATCH] Create: 0092-reverse-linked-list-ii.cpp --- cpp/0092-reverse-linked-list-ii.cpp | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 cpp/0092-reverse-linked-list-ii.cpp diff --git a/cpp/0092-reverse-linked-list-ii.cpp b/cpp/0092-reverse-linked-list-ii.cpp new file mode 100644 index 000000000..9021edd6b --- /dev/null +++ b/cpp/0092-reverse-linked-list-ii.cpp @@ -0,0 +1,34 @@ +/* + Given the head of a singly linked list and two integers left and right where left <= right, reverse the nodes of the list from position left to position right, and return the reversed list. + + Time complexity: O(n) + Space complexity: O(1) +*/ +class Solution { +public: + ListNode* reverseBetween(ListNode* head, int left, int right) { + ListNode* dummy = new ListNode(); + dummy->next = head; + + int i=0; + ListNode* leftConnector = dummy,*temp = head; + while(inext; + i++; + } + ListNode* prev = NULL; + i=0; + while(inext; + temp->next = prev; + prev = temp; + temp = store; + i++; + } + leftConnector->next->next = temp; + leftConnector->next = prev; + + return dummy->next; + } +}; \ No newline at end of file