-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMerge_two_sorted_linked_lists.java
49 lines (48 loc) · 1.17 KB
/
Merge_two_sorted_linked_lists.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
Merge two linked lists
head pointer input could be NULL as well for empty list
Node is defined as
class Node {
int data;
Node next;
}
*/
Node MergeLists(Node headA, Node headB) {
// This is a "method-only" submission.
// You only need to complete this method
if(headA == null) return headB;
if(headB == null) return headA;
Node A = headA;
Node B = headB;
Node merged = new Node();
Node merged_head = merged;
while(A != null && B != null){
if(A.data >= B.data){
merged.data = B.data;
B = B.next;
}
else{
merged.data = A.data;
A = A.next;
}
merged.next = new Node();
merged = merged.next;
}
while(A != null){
merged.data = A.data;
if(A.next == null) break;
merged.next = new Node();
merged = merged.next;
A = A.next;
}
while(B != null){
merged.data = B.data;
if(B.next == null) break;
merged.next = new Node();
merged = merged.next;
B = B.next;
}
//merged.next = null;
//merged = merged.next;
return merged_head;
}