File tree Expand file tree Collapse file tree 1 file changed +19
-42
lines changed Expand file tree Collapse file tree 1 file changed +19
-42
lines changed Original file line number Diff line number Diff line change 11/**
2+ * Author: Bilong HUANG
23 * Definition for singly-linked list.
34 * function ListNode(val) {
45 * this.val = val;
1112 * @return {ListNode }
1213 */
1314var addTwoNumbers = function ( l1 , l2 ) {
14- if ( l1 === null || l2 === null ) {
15- return l1 || l2 ;
16- }
17-
18- var result = new ListNode ( 0 ) ;
19- var cur = result ;
20- var p = l1 ;
21- var q = l2 ;
22- var carry = 0 ;
15+ var result , node , node_current , add = 0 ;
2316
24- while ( p || q ) {
25- var qval ;
26- var pval ;
27-
28- if ( q ) {
29- qval = q . val ;
30- q = q . next ;
31- } else {
32- qval = 0 ;
33- }
34-
35- if ( p ) {
36- pval = p . val ;
37- p = p . next ;
17+ while ( l1 || l2 ) {
18+ node_current = new ListNode ( ( l1 ? l1 . val : 0 ) + ( l2 ? l2 . val : 0 ) + add ) ;
19+ if ( add = Math . floor ( node_current . val / 10 ) )
20+ node_current . val = node_current . val % 10 ;
21+ if ( result == null ) {
22+ result = node_current ;
3823 } else {
39- pval = 0 ;
24+ node . next = node_current ;
4025 }
41-
42- var val = qval + pval + carry ;
43-
44- if ( val > 9 ) {
45- carry = 1 ;
46- val %= 10 ;
47- } else {
48- carry = 0 ;
49- }
50-
51- cur . next = new ListNode ( val ) ;
52- cur = cur . next ;
26+ node = node_current ;
27+ if ( l1 )
28+ l1 = ( l1 . next ? ( l1 = l1 . next ) : null ) ;
29+ if ( l2 )
30+ l2 = ( l2 . next ? ( l2 = l2 . next ) : null ) ;
5331 }
5432
55- if ( carry !== 0 ) {
56- cur . next = new ListNode ( 1 ) ;
33+ if ( add != 0 ) {
34+ node_current = new ListNode ( add ) ;
35+ node . next = node_current ;
5736 }
58-
59- return result . next ;
60-
61- } ;
37+ return result ;
38+ } ;
You can’t perform that action at this time.
0 commit comments