File tree 1 file changed +98
-0
lines changed
1 file changed +98
-0
lines changed Original file line number Diff line number Diff line change
1
+ /* *
2
+ * Definition for singly-linked list.
3
+ * struct ListNode {
4
+ * int val;
5
+ * ListNode *next;
6
+ * ListNode() : val(0), next(nullptr) {}
7
+ * ListNode(int x) : val(x), next(nullptr) {}
8
+ * ListNode(int x, ListNode *next) : val(x), next(next) {}
9
+ * };
10
+ */
11
+ class Solution {
12
+ public:
13
+ ListNode* mergeTwoLists (ListNode* list1, ListNode* list2) {
14
+ ListNode* head = NULL ;
15
+ ListNode* prev = NULL ;
16
+ if (list1==NULL && list2==NULL )
17
+ {
18
+ return head;
19
+ }
20
+ while (list1!=NULL && list2!=NULL )
21
+ {
22
+ ListNode* newnode = new ListNode ();
23
+
24
+ if (list1->val < list2->val )
25
+ {
26
+ newnode->val = list1->val ;
27
+ newnode->next = NULL ;
28
+ if (head==NULL )
29
+ {
30
+ head = newnode;
31
+ prev = newnode;
32
+ }
33
+ else
34
+ {
35
+ prev->next = newnode;
36
+ prev = newnode;
37
+ }
38
+ list1 = list1->next ;
39
+ }
40
+ else
41
+ {
42
+ newnode->val = list2->val ;
43
+ newnode->next = NULL ;
44
+ if (head==NULL )
45
+ {
46
+ head = newnode;
47
+ prev = newnode;
48
+ }
49
+ else
50
+ {
51
+ prev->next = newnode;
52
+ prev = newnode;
53
+ }
54
+ list2 = list2->next ;
55
+ }
56
+ }
57
+
58
+ if (list1==NULL && list2!=NULL )
59
+ {
60
+ if (prev!=NULL )
61
+ {
62
+ while (list2!=NULL )
63
+ {
64
+ ListNode* newnode = new ListNode ();
65
+ newnode->val = list2->val ;
66
+ newnode->next = NULL ;
67
+ prev->next = newnode;
68
+ prev = newnode;
69
+ list2 = list2->next ;
70
+ }
71
+ }
72
+ else
73
+ {
74
+ head = list2;
75
+ }
76
+ }
77
+ else if (list1!=NULL && list2==NULL )
78
+ {
79
+ if (prev!=NULL )
80
+ {
81
+ while (list1!=NULL )
82
+ {
83
+ ListNode* newnode = new ListNode ();
84
+ newnode->val = list1->val ;
85
+ newnode->next = NULL ;
86
+ prev->next = newnode;
87
+ prev = newnode;
88
+ list1 = list1->next ;
89
+ }
90
+ }
91
+ else
92
+ {
93
+ head = list1;
94
+ }
95
+ }
96
+ return head;
97
+ }
98
+ };
You can’t perform that action at this time.
0 commit comments