File tree 5 files changed +239
-116
lines changed
5 files changed +239
-116
lines changed Original file line number Diff line number Diff line change 65
65
* [ ListAddnFun] ( https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/ListAddnFun.java )
66
66
* [ Merge K SortedLinkedlist] ( https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/Merge_K_SortedLinkedlist.java )
67
67
* [ MergeSortedArrayList] ( https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/MergeSortedArrayList.java )
68
+ * [ MergeSortedSinglyLinkedList] ( https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/MergeSortedSinglyLinkedList.java )
68
69
* [ SinglyLinkedList] ( https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/SinglyLinkedList.java )
69
70
* Queues
70
71
* [ GenericArrayListQueue] ( https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/GenericArrayListQueue.java )
207
208
* [ Problem04] ( https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem04.java )
208
209
* [ Problem06] ( https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem06.java )
209
210
* [ Problem07] ( https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem07.java )
211
+ * [ Problem09] ( https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem09.java )
212
+ * [ Problem10] ( https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem10.java )
210
213
211
214
## Searches
212
215
* [ BinarySearch] ( https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java )
Original file line number Diff line number Diff line change
1
+ package DataStructures .Lists ;
2
+
3
+ public class MergeSortedSinglyLinkedList extends SinglyLinkedList {
4
+
5
+ public static void main (String [] args ) {
6
+ SinglyLinkedList listA = new SinglyLinkedList ();
7
+ SinglyLinkedList listB = new SinglyLinkedList ();
8
+
9
+ for (int i = 2 ; i <= 10 ; i += 2 ) {
10
+ listA .insert (i );
11
+ listB .insert (i - 1 );
12
+ }
13
+ assert listA .toString ().equals ("2->4->6->8->10" );
14
+ assert listB .toString ().equals ("1->3->5->7->9" );
15
+ assert merge (listA , listB ).toString ().equals ("1->2->3->4->5->6->7->8->9->10" );
16
+ }
17
+
18
+ /**
19
+ * Merge two sorted SingleLinkedList
20
+ *
21
+ * @param listA the first sorted list
22
+ * @param listB the second sored list
23
+ * @return merged sorted list
24
+ */
25
+ public static SinglyLinkedList merge (SinglyLinkedList listA , SinglyLinkedList listB ) {
26
+ Node headA = listA .getHead ();
27
+ Node headB = listB .getHead ();
28
+
29
+ int size = listA .size () + listB .size ();
30
+
31
+ Node head = new Node ();
32
+ Node tail = head ;
33
+ while (headA != null && headB != null ) {
34
+ if (headA .value <= headB .value ) {
35
+ tail .next = headA ;
36
+ headA = headA .next ;
37
+ } else {
38
+ tail .next = headB ;
39
+ headB = headB .next ;
40
+ }
41
+ tail = tail .next ;
42
+ }
43
+ if (headA == null ) {
44
+ tail .next = headB ;
45
+ }
46
+ if (headB == null ) {
47
+ tail .next = headA ;
48
+ }
49
+ return new SinglyLinkedList (head .next , size );
50
+ }
51
+ }
You can’t perform that action at this time.
0 commit comments