fork download
  1. import java.util.*;
  2.  
  3. class Main {
  4.  
  5. static class Node {
  6. int data;
  7. Node next;
  8.  
  9. Node(int data) {
  10. this.data = data;
  11. }
  12. }
  13.  
  14. static Node buildlist(int[] vals) {
  15.  
  16. Node head = null, tail = null;
  17.  
  18. for (int val : vals) {
  19.  
  20. Node newNode = new Node(val);
  21.  
  22. if (head == null) {
  23. head = newNode;
  24. tail = newNode;
  25. } else {
  26. tail.next = newNode;
  27. tail = newNode;
  28. }
  29. }
  30.  
  31. return head;
  32. }
  33.  
  34. static Node sort(Node head, Node head1) {
  35.  
  36. Node curr = head;
  37. Node curr1 = head1;
  38.  
  39. Node dummy = new Node(0);
  40. Node dummycurr = dummy;
  41.  
  42. while (curr != null && curr1 != null) {
  43.  
  44. if (curr.data <= curr1.data) {
  45.  
  46. dummycurr.next = new Node(curr.data);
  47. dummycurr = dummycurr.next;
  48. curr = curr.next;
  49.  
  50. } else {
  51.  
  52. dummycurr.next = new Node(curr1.data);
  53. dummycurr = dummycurr.next;
  54. curr1 = curr1.next;
  55. }
  56. }
  57.  
  58. // Remaining nodes of first list
  59. while (curr != null) {
  60.  
  61. dummycurr.next = new Node(curr.data);
  62. dummycurr = dummycurr.next;
  63. curr = curr.next;
  64. }
  65.  
  66. // Remaining nodes of second list
  67. while (curr1 != null) {
  68.  
  69. dummycurr.next = new Node(curr1.data);
  70. dummycurr = dummycurr.next;
  71. curr1 = curr1.next;
  72. }
  73.  
  74. return dummy.next;
  75. }
  76.  
  77. public static void main(String[] args) {
  78.  
  79. Scanner sc = new Scanner(System.in);
  80.  
  81. int n = sc.nextInt();
  82.  
  83. int[] arr = new int[n];
  84.  
  85. for (int i = 0; i < n; i++) {
  86. arr[i] = sc.nextInt();
  87. }
  88.  
  89. int m = sc.nextInt();
  90.  
  91. int[] arr1 = new int[m];
  92.  
  93. for (int i = 0; i < m; i++) {
  94. arr1[i] = sc.nextInt();
  95. }
  96.  
  97. Node head = buildlist(arr);
  98. Node head1 = buildlist(arr1);
  99.  
  100. Node dum = sort(head, head1);
  101.  
  102. StringBuilder sb = new StringBuilder();
  103.  
  104. Node dumcurr = dum;
  105.  
  106. while (dumcurr != null) {
  107.  
  108. sb.append(dumcurr.data);
  109.  
  110. if (dumcurr.next != null)
  111. sb.append(" ");
  112.  
  113. dumcurr = dumcurr.next;
  114. }
  115.  
  116. System.out.println(sb);
  117. }
  118. }
Success #stdin #stdout 0.13s 56588KB
stdin
3
1 3 5
5
2 4 6 7 8
stdout
1 2 3 4 5 6 7 8