链表求和

输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295
输出:2 -> 1 -> 9,即912

我用的方法是先求两个链表相加的和,然后再把这个和以链表的形式输出,但是这种方式没有考虑到链表的长度,不能通过所有示例...
var addTwoNumbers = function(l1, l2) {
    
    let l1sum = 0;
    let l2sum = 0;
    let ai=0;
    let bi=0;
    let result = new ListNode(0);
    let result1 = result;
    while(l1!==null) {
        l1sum+=l1.val * Math.pow(10,ai);
        l1=l1.next;
         console.log(l1sum)
        ai++;
    }
    while(l2!==null) {
        l2sum+=l2.val * Math.pow(10,bi);
        l2=l2.next;
        // console.log(l2sum)
        bi++;
    }
    l1sum += l2sum;
    l1sum = l1sum.toString().split("").reverse();
    for(let i=0;i<l1sum.length;i++) {
        result1.val = l1sum[i];
        if(i===l1sum.length-1) break;
        result1.next = new ListNode(0);
        result1 = result1.next;
    }
    // console.log(result);
    return result;
};

 

posted @ 2021-03-21 16:15  JMH0113  阅读(107)  评论(0)    收藏  举报