leetcode 两数相加(链表 + 模拟)

?

 

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var addTwoNumbers = function(l1, l2) {
    let ans = new ListNode(0,null);
    let fans = ans;
    let tmp = 0;
    while(l1 && l2) {
        ans.next = new ListNode(0,null);
        ans = ans.next;
        ans.val = (l1.val + l2.val + tmp) % 10;
        tmp = parseInt((l1.val + l2.val + tmp) / 10);
        l1 = l1.next;
        l2 = l2.next;
    }
    while(l1) {
        ans.next = new ListNode(0,null);
        ans = ans.next;
        ans.val = (l1.val + tmp) % 10;
        tmp = parseInt((l1.val + tmp) / 10);
        l1 = l1.next;
    }
    while(l2) {
        ans.next = new ListNode(0,null);
        ans = ans.next;
        ans.val = (l2.val + tmp) % 10;
        tmp = parseInt((l2.val + tmp) / 10);
        l2 = l2.next;
    }
    if(tmp !== 0) {
        ans.next = new ListNode(0,null);
        ans = ans.next;
        ans.val = tmp;
    } 
    return fans.next;
};


版权声明:本文为weixin_44499508原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。