From 6522012065712fb0ece31bff9ff10b38a83b10e1 Mon Sep 17 00:00:00 2001 From: Michael Hunteman Date: Thu, 22 Sep 2022 10:14:04 -0500 Subject: Initial commit --- MergeLists.java | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 MergeLists.java (limited to 'MergeLists.java') diff --git a/MergeLists.java b/MergeLists.java new file mode 100644 index 0000000..e939511 --- /dev/null +++ b/MergeLists.java @@ -0,0 +1,62 @@ +import java.lang.*; +import java.util.*; +import node.*; + +class MergeLists { + public static ListNode mergeTwoLists(ListNode list1, ListNode list2) { + if (list1 == null && list2 == null) + return new ListNode(); + else if (list1 == null) + return list2; + else if (list2 == null) + return list1; + + ListNode curr1 = list1; + ListNode curr2 = list2; + + ListNode head; + if (curr1.val < curr2.val) { + head = curr1; + curr1 = curr1.next; + } else { + head = curr2; + curr2 = curr2.next; + } + + ListNode node = head; + while (curr1 != null && curr2 != null) { + if (curr1.val < curr2.val) { + node.next = curr1; + curr1 = curr1.next; + } else { + node.next = curr2; + curr2 = curr2.next; + } + node = node.next; + } + + if (curr1 == null) { + node.next = curr2; + } else { + node.next = curr1; + } + + return head; + } + + public static void main(String[] args) { + ListNode second1 = new ListNode(4, null); + ListNode first1 = new ListNode(2, second1); + ListNode list1 = new ListNode(1, first1); + + ListNode second2 = new ListNode(4, null); + ListNode first2 = new ListNode(3, second2); + ListNode list2 = new ListNode(1, first2); + + ListNode curr = mergeTwoLists(list1, list2); + while (curr != null) { + System.out.println(curr.val); + curr = curr.next; + } + } +} -- cgit v1.2.3