File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * function ListNode(val, next) {
4+ * this.val = (val===undefined ? 0 : val)
5+ * this.next = (next===undefined ? null : next)
6+ * }
7+ */
8+ /**
9+ * @param {ListNode } list1
10+ * @param {ListNode } list2
11+ * @return {ListNode }
12+ */
13+
14+ // TC: O(n + m) / SC: O(1)
15+ var mergeTwoLists = function ( list1 , list2 ) {
16+ let mergeHead = null ;
17+ let mergePointer = null ;
18+
19+ let head1 = list1 ;
20+ let head2 = list2 ;
21+
22+ const mergeNode = node => {
23+ const temp = node . next ;
24+ if ( ! mergeHead ) {
25+ mergeHead = node ;
26+ mergePointer = node ;
27+ } else {
28+ mergePointer . next = node ;
29+ mergePointer = mergePointer . next ;
30+ }
31+ return temp ;
32+ } ;
33+
34+ while ( head1 && head2 ) {
35+ if ( head1 . val <= head2 . val ) {
36+ head1 = mergeNode ( head1 ) ;
37+ } else {
38+ head2 = mergeNode ( head2 ) ;
39+ }
40+ }
41+
42+ if ( head1 ) mergeNode ( head1 ) ;
43+ if ( head2 ) mergeNode ( head2 ) ;
44+
45+ return mergeHead ;
46+ } ;
You can’t perform that action at this time.
0 commit comments