From 98d6f84d4e5e25f1e86d0db38c2df906069bc433 Mon Sep 17 00:00:00 2001 From: PalmaAnd Date: Thu, 28 Sep 2023 14:33:35 +0200 Subject: [PATCH 1/6] Started working on new problem --- docs/Linked List/0021. Merge Two Sorted Lists.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Linked List/0021. Merge Two Sorted Lists.md diff --git a/docs/Linked List/0021. Merge Two Sorted Lists.md b/docs/Linked List/0021. Merge Two Sorted Lists.md new file mode 100644 index 0000000..e69de29 From 5d114eee1d5cf66f4c4c632b312fee51837c6b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Palma?= <54452893+PalmaAnd@users.noreply.github.com> Date: Fri, 29 Sep 2023 20:55:46 +0200 Subject: [PATCH 2/6] Added test cases for MergeTwoSortedLists --- Java/.idea/misc.xml | 3 +- Java/.idea/workspace.xml | 52 ++++++++----- .../linked_list/MergeTwoSortedLists.java | 9 +++ .../linked_list/MergeTwoSortedListsTest.java | 75 +++++++++++++++++++ 4 files changed, 119 insertions(+), 20 deletions(-) create mode 100644 Java/src/main/java/problems/leetcode/linked_list/MergeTwoSortedLists.java create mode 100644 Java/src/test/java/problems/leetcode/linked_list/MergeTwoSortedListsTest.java diff --git a/Java/.idea/misc.xml b/Java/.idea/misc.xml index a107768..9bae292 100644 --- a/Java/.idea/misc.xml +++ b/Java/.idea/misc.xml @@ -1,3 +1,4 @@ + @@ -7,7 +8,7 @@ - + \ No newline at end of file diff --git a/Java/.idea/workspace.xml b/Java/.idea/workspace.xml index 2279a2e..38ad56b 100644 --- a/Java/.idea/workspace.xml +++ b/Java/.idea/workspace.xml @@ -5,8 +5,10 @@ + + + - + - { + "lastFilter": { + "state": "OPEN", + "assignee": "PalmaAnd" } -}]]> +} + + + - { - "keyToString": { - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "0049-group-anagrams", - "ignore.virus.scanning.warn.message": "true", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "settings.editor.selected.configurable": "preferences.pluginManager", - "vue.rearranger.settings.migration": "true" + +}]]> diff --git a/Java/src/main/java/problems/leetcode/linked_list/MergeTwoSortedLists.java b/Java/src/main/java/problems/leetcode/linked_list/MergeTwoSortedLists.java new file mode 100644 index 0000000..893bc04 --- /dev/null +++ b/Java/src/main/java/problems/leetcode/linked_list/MergeTwoSortedLists.java @@ -0,0 +1,9 @@ +package problems.leetcode.linked_list; + +import problems.leetcode.utils.ListNode; + +public class MergeTwoSortedLists { + public ListNode mergeTwoLists(ListNode list1, ListNode list2) { + return null; + } +} diff --git a/Java/src/test/java/problems/leetcode/linked_list/MergeTwoSortedListsTest.java b/Java/src/test/java/problems/leetcode/linked_list/MergeTwoSortedListsTest.java new file mode 100644 index 0000000..bc2a298 --- /dev/null +++ b/Java/src/test/java/problems/leetcode/linked_list/MergeTwoSortedListsTest.java @@ -0,0 +1,75 @@ +package problems.leetcode.linked_list; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import problems.leetcode.utils.ListNode; + +import static org.junit.jupiter.api.Assertions.*; + +public class MergeTwoSortedListsTest { + + private MergeTwoSortedLists solution; + + @BeforeEach + public void setUp() { + solution = new MergeTwoSortedLists(); + } + + @Test + public void testMergeTwoListsBothEmpty() { + ListNode l1 = null; + ListNode l2 = null; + ListNode merged = solution.mergeTwoLists(l1, l2); + assertNull(merged); + } + + @Test + public void testMergeTwoListsWithOneEmpty() { + ListNode l1 = new ListNode(1); + ListNode l2 = null; + ListNode merged = solution.mergeTwoLists(l1, l2); + assertEquals(l1, merged); + + l1 = null; + l2 = new ListNode(2); + merged = solution.mergeTwoLists(l1, l2); + assertEquals(l2, merged); + } + + @Test + public void testMergeTwoListsBothNonEmpty() { + // l1: 1 -> 2 -> 4 + ListNode l1 = new ListNode(1); + l1.next = new ListNode(2); + l1.next.next = new ListNode(4); + + // l2: 1 -> 3 -> 4 + ListNode l2 = new ListNode(1); + l2.next = new ListNode(3); + l2.next.next = new ListNode(4); + + // Expected merged list: 1 -> 1 -> 2 -> 3 -> 4 -> 4 + ListNode expected = new ListNode(1); + expected.next = new ListNode(1); + expected.next.next = new ListNode(2); + expected.next.next.next = new ListNode(3); + expected.next.next.next.next = new ListNode(4); + expected.next.next.next.next.next = new ListNode(4); + + ListNode merged = solution.mergeTwoLists(l1, l2); + assertTrue(areListsEqual(expected, merged)); + } + + // Helper method to check if two linked lists are equal + private boolean areListsEqual(ListNode l1, ListNode l2) { + while (l1 != null && l2 != null) { + if (l1.val != l2.val) { + return false; + } + l1 = l1.next; + l2 = l2.next; + } + return l1 == null && l2 == null; + } +} + From f9e4145482a3298122532fc169bbc8390bf871a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Palma?= <54452893+PalmaAnd@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:35:52 +0200 Subject: [PATCH 3/6] Found working solution for MergeTwoSortedLists --- Java/.idea/misc.xml | 1 - Java/.idea/workspace.xml | 55 +++++++++---------- .../linked_list/MergeTwoSortedLists.java | 15 ++++- 3 files changed, 41 insertions(+), 30 deletions(-) diff --git a/Java/.idea/misc.xml b/Java/.idea/misc.xml index 9bae292..c3da0e7 100644 --- a/Java/.idea/misc.xml +++ b/Java/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/Java/.idea/workspace.xml b/Java/.idea/workspace.xml index 38ad56b..7d724d0 100644 --- a/Java/.idea/workspace.xml +++ b/Java/.idea/workspace.xml @@ -5,10 +5,9 @@ - - + - { + "keyToString": { + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "0021-merge-two-sorted-lists", + "ignore.virus.scanning.warn.message": "true", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "settings.editor.selected.configurable": "preferences.pluginManager", + "vue.rearranger.settings.migration": "true" } -}]]> - - +} + + - - - + - - + - @@ -219,6 +217,7 @@ +