Skip to content

Commit 9405631

Browse files
authored
Merge pull request #5 from Chayandas07/Chayandas07-patch-5
Create 30 November Reorder List
2 parents 378ee17 + 5493977 commit 9405631

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

30 November Reorder List

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
class Solution{
2+
public:
3+
Node* reverse(Node* head)
4+
{
5+
Node* curr = head;
6+
Node *next = NULL, *prev = NULL;
7+
while(curr)
8+
{
9+
next = curr->next;
10+
curr->next = prev;
11+
prev = curr;
12+
curr = next;
13+
}
14+
return prev;
15+
}
16+
Node* merge(Node* a,Node* b)
17+
{
18+
while(b)
19+
{
20+
Node* temp1=a->next;
21+
Node* temp2=b->next;
22+
23+
a->next=b;
24+
b->next=temp1;
25+
a=temp1;
26+
b=temp2;
27+
}
28+
return a;
29+
}
30+
void reorderList(Node* head)
31+
{
32+
if(!head || !head->next) return;
33+
Node *slow = head;
34+
Node *fast = head->next;
35+
while(fast&&fast->next)
36+
{
37+
slow=slow->next;
38+
fast=fast->next->next;
39+
}
40+
Node* shead = reverse(slow->next);
41+
slow->next=NULL;
42+
merge(head,shead);
43+
}
44+
};

0 commit comments

Comments
 (0)