LeetCode in JavaScript#2 Add Two Numbers

Leetcode Add Two Numbers

Solution

这个问题主要要注意两点,两数长度不等的情况和相加进位的情况

var addTwoNumbers = function(l1, l2) {
    var n1 = l1,n2 = l2,node;
    var v1 = 0,v2 = 0,v3 = 0,sum = 0;
    var head = new ListNode(0);
    var tail = head;
    while (n1 || n2) {
        v1 = n1 ? n1.val : 0;
        v2 = n2 ? n2.val : 0;
        sum = v1 + v2 + v3;
        node = new ListNode(sum%10);
        v3 = sum >= 10 ? 1 : 0;
        tail.next = node;
        tail = tail.next;
        if (n1) n1 = n1.next;
        if (n2) n2 = n2.next;
    }
    if (v3) tail.next = new ListNode(v3);
    return head.next;
};

时间复杂度 O(max(m,n)) m,n代表l1,l2的长度
空间复杂度 O(max(m,n))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容