两数相加
Posted icyyyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两数相加相关的知识,希望对你有一定的参考价值。
题目:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
思路:
代码:
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} l1 10 * @param {ListNode} l2 11 * @return {ListNode} 12 */ 13 var addTwoNumbers = function(l1, l2) { 14 let dummy = new ListNode(); 15 let curr = dummy; 16 let carry = 0; 17 while(l1 !== null || l2 !== null){ 18 let sum = 0; 19 if(l1 !== null){ 20 sum += l1.val; 21 l1 = l1.next; 22 } 23 if(l2 !== null){ 24 sum += l2.val; 25 l2 = l2.next; 26 } 27 sum += carry; 28 curr.next = new ListNode(sum % 10); 29 carry = Math.floor(sum / 10); 30 curr = curr.next; 31 } 32 if(carry > 0){ 33 curr.next = new ListNode(carry); 34 } 35 return dummy.next; 36 };
以上是关于两数相加的主要内容,如果未能解决你的问题,请参考以下文章