两数相加

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 };

 

以上是关于两数相加的主要内容,如果未能解决你的问题,请参考以下文章

2. 两数相加

链表题--02----两数相加

C++代码算法题:.两数相加

leetcode-2. 两数相加

如何用C语言编写一个求两数相加得和的小程序。

两数相加