我的js算法爬坑之旅- 两数相加

109 阅读1分钟

第五十六天:力扣第2题,两数相加

地址:leetcode-cn.com/problems/ad…

思路:创建新链表,然后逐一将两个链表的每个值相加,超过十放在一个进一位里就行了。

var addTwoNumbers = function(l1, l2) {
  let head = new ListNode(-1);
  let res = head;
  let sum = 0;
  let a = 0;
  while(l1 || l2)
  {
    sum = (l1 ? l1.val : 0) + (l2 ? l2.val : 0) + a;//判断是否存在
    a = sum >= 10 ? 1 : 0;// 进位符
    res.next = new ListNode(sum % 10);//存入
    res = res.next;
    if(l1)l1 = l1.next;
    if(l2)l2 = l2.next;
  }
  if(a !== 0)
  {
    res.next = new ListNode(a);
  }
  return head.next;
};

执行用时:140 ms, 在所有 JavaScript 提交中击败了71.38%的用户

内存消耗:43 MB, 在所有 JavaScript 提交中击败了35.65%的用户