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+ * 我第一次的写法
10+ * @param {ListNode } l1
11+ * @param {ListNode } l2
12+ * @return {ListNode }
13+ */
14+ var mergeTwoLists = function ( l1 , l2 ) {
15+ var currNode1 = l1 ;
16+ var currNode2 = l2 ;
17+ var l3 = new ListNode ( 0 ) ;
18+ var currNode3 = l3 ;
19+ while ( currNode1 !== null && currNode2 !== null ) {
20+ if ( currNode1 . val <= currNode2 . val ) {
21+ currNode3 . next = new ListNode ( currNode1 . val ) ;
22+ currNode1 = currNode1 . next ;
23+ } else {
24+ currNode3 . next = new ListNode ( currNode2 . val ) ;
25+ currNode2 = currNode2 . next ;
26+ }
27+ currNode3 = currNode3 . next ;
28+ }
29+ if ( currNode1 !== null ) {
30+ currNode3 . next = new ListNode ( currNode1 . val ) ;
31+ currNode3 . next . next = currNode1 . next ;
32+ } else if ( currNode2 !== null ) {
33+ currNode3 . next = new ListNode ( currNode2 . val ) ;
34+ currNode3 . next . next = currNode2 . next ;
35+ }
36+ return l3 . next ;
37+ } ;
38+
39+ /**
40+ * Definition for singly-linked list.
41+ * function ListNode(val, next) {
42+ * this.val = (val===undefined ? 0 : val)
43+ * this.next = (next===undefined ? null : next)
44+ * }
45+ */
46+ /**
47+ * 官方
48+ * @param {ListNode } l1
49+ * @param {ListNode } l2
50+ * @return {ListNode }
51+ */
52+ var mergeTwoLists1 = function ( l1 , l2 ) {
53+ if ( l1 === null ) {
54+ return l2 ;
55+ } else if ( l2 === null ) {
56+ return l1 ;
57+ } else if ( l1 . val < l2 . val ) {
58+ l1 . next = mergeTwoLists1 ( l1 . next , l2 ) ;
59+ return l1 ;
60+ } else {
61+ l2 . next = mergeTwoLists1 ( l1 , l2 . next ) ;
62+ return l2 ;
63+ }
64+ } ;
0 commit comments