File tree Expand file tree Collapse file tree 1 file changed +94
-0
lines changed Expand file tree Collapse file tree 1 file changed +94
-0
lines changed Original file line number Diff line number Diff line change
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
+ };
You can’t perform that action at this time.
0 commit comments