Skip to content

Commit 7e4afe9

Browse files
authored
Create Merge 2 sorted linked list in reverse order.cpp
1 parent 645cf7a commit 7e4afe9

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
class Solution
2+
{
3+
public:
4+
5+
Node * reverse(Node * node){
6+
Node * prev = nullptr;
7+
8+
while(node){
9+
Node * next = node -> next;
10+
node -> next = prev;
11+
prev = node;
12+
node = next;
13+
}
14+
15+
return prev;
16+
}
17+
18+
struct Node * mergeResult(Node *node1,Node *node2)
19+
{
20+
node1 = reverse(node1);
21+
node2 = reverse(node2);
22+
23+
Node * newHead = nullptr;
24+
Node * curNode = nullptr;
25+
26+
while(node1 and node2){
27+
if(node1 -> data > node2 -> data){
28+
if(!curNode){
29+
curNode = new Node;
30+
curNode -> data = node1 -> data;
31+
newHead = curNode;
32+
}
33+
else{
34+
Node * newNode = new Node;
35+
newNode -> data = node1 -> data;
36+
37+
curNode -> next = newNode;
38+
curNode = newNode;
39+
}
40+
41+
node1 = node1 -> next;
42+
}
43+
else{
44+
if(!curNode){
45+
curNode = new Node;
46+
curNode -> data = node2 -> data;
47+
newHead = curNode;
48+
}
49+
else{
50+
Node * newNode = new Node;
51+
newNode -> data = node2 -> data;
52+
curNode -> next = newNode;
53+
curNode = newNode;
54+
}
55+
56+
node2 = node2 -> next;
57+
}
58+
}
59+
60+
while(node1){
61+
if(!curNode){
62+
curNode = new Node;
63+
curNode -> data = node1 -> data;
64+
newHead = curNode;
65+
}
66+
else{
67+
Node * newNode = new Node;
68+
newNode -> data = node1 -> data;
69+
curNode -> next = newNode;
70+
curNode = newNode;
71+
}
72+
73+
node1 = node1 -> next;
74+
}
75+
76+
while(node2){
77+
if(!curNode){
78+
curNode = new Node;
79+
curNode -> data = node2 -> data;
80+
newHead = curNode;
81+
}
82+
else{
83+
Node * newNode = new Node;
84+
newNode -> data = node2 -> data;
85+
curNode -> next = newNode;
86+
curNode = newNode;
87+
}
88+
89+
node2 = node2 -> next;
90+
}
91+
92+
return newHead;
93+
}
94+
};

0 commit comments

Comments
 (0)