美文网首页
74.两数相加

74.两数相加

作者: wo不是黄蓉 | 来源:发表于2022-03-07 21:40 被阅读0次

day21: 2. 两数相加(中等)

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

思路:
一个比较巧妙的地方:一位内数字是按照逆序的顺序存储的,因此将其反转过来之后,相加,但是位数不一致的时候就需要错位,此时,相加的位置正好和逆序排序的顺序相同。
例如:
[2,4,9][5,6,4,9]
将其反转过来之后:[9,4,2][9,4,6,5]相加时,前面需要往前补一位0。

var addTwoNumbers = function (l1, l2) {
  let result = new ListNode(0);
  let rhead = result,
    tail = null;
  let add = 0;
  while (l1 || l2) {
    let sum = (l1 ? l1.val : 0) + (l2 ? l2.val : 0) + add;
    if (!rhead) {
      rhead = new ListNode(sum % 10);
    } else {
      rhead.next = new ListNode(sum % 10);
      rhead = rhead.next;
    }
    add = Math.floor(sum / 10);
//l2的长度较短
    if (l1) {
      l1 = l1.next;
    }
//l1的长度较短
    if (l2) {
      l2 = l2.next;
    }
//商大于0,继续进位
    if (add > 0) {
      rhead.next = new ListNode(add);
    }
  }
  return result.next;
};

相关文章

  • 74.两数相加

    day21: 2. 两数相加[https://leetcode-cn.com/problems/add-two-n...

  • 两数相加

    题目 You are given two non-empty linked lists representing ...

  • 两数相加

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表...

  • 两数相加

    两数相加 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一...

  • 两数相加

    两数相加: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回...

  • 两数相加

    题目 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新...

  • 两数相加

    题目描述: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回...

  • 两数相加

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表...

  • 两数相加

    问题链接:https://leetcode-cn.com/explore/interview/card/top-i...

  • 两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只...

网友评论

      本文标题:74.两数相加

      本文链接:https://www.haomeiwen.com/subject/ucxorrtx.html