File tree Expand file tree Collapse file tree 1 file changed +76
-0
lines changed
Algorithms/Easy/21_MergeTwoSortedLists Expand file tree Collapse file tree 1 file changed +76
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * public class ListNode {
4+ * int val;
5+ * ListNode next;
6+ * ListNode() {}
7+ * ListNode(int val) { this.val = val; }
8+ * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
9+ * }
10+ */
11+ class Solution {
12+ public ListNode mergeTwoLists (ListNode list1 , ListNode list2 ) {
13+ if (list1 == null ) {
14+ return list2 ;
15+ }
16+
17+ if (list2 == null ) {
18+ return list1 ;
19+ }
20+
21+ ListNode mergedHead = null ;
22+ ListNode temporaryHead = null ;
23+
24+ while (list1 != null || list2 != null ) {
25+ if (list1 == null && list2 != null ) {
26+ ListNode node = new ListNode (list2 .val );
27+
28+ if (mergedHead == null ) {
29+ mergedHead = node ;
30+ } else {
31+ temporaryHead .next = node ;
32+ }
33+
34+ temporaryHead = node ;
35+ list2 = list2 .next ;
36+ } else if (list1 != null && list2 == null ) {
37+ ListNode node = new ListNode (list1 .val );
38+
39+ if (mergedHead == null ) {
40+ mergedHead = node ;
41+ } else {
42+ temporaryHead .next = node ;
43+ }
44+
45+ temporaryHead = node ;
46+ list1 = list1 .next ;
47+ } else {
48+ if (list1 .val < list2 .val ) {
49+ ListNode node = new ListNode (list1 .val );
50+
51+ if (mergedHead == null ) {
52+ mergedHead = node ;
53+ } else {
54+ temporaryHead .next = node ;
55+ }
56+
57+ temporaryHead = node ;
58+ list1 = list1 .next ;
59+ } else {
60+ ListNode node = new ListNode (list2 .val );
61+
62+ if (mergedHead == null ) {
63+ mergedHead = node ;
64+ } else {
65+ temporaryHead .next = node ;
66+ }
67+
68+ temporaryHead = node ;
69+ list2 = list2 .next ;
70+ }
71+ }
72+ }
73+
74+ return mergedHead ;
75+ }
76+ }
You can’t perform that action at this time.
0 commit comments