zoukankan      html  css  js  c++  java
  • leetcode—js—Add Two Numbers

    You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

    You may assume the two numbers do not contain any leading zero, except the number 0 itself.

    Example

    Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
    Output: 7 -> 0 -> 8
    Explanation: 342 + 465 = 807

    解题思路:
    (1)本题涉及到链表的结构
    (2)本题类似小学数学的加法,从个位开始相加,有超过10则进位,否则就是本节点的值
    (3)两个链表的长度不知道谁长,需要做一下处理。

    code:
    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} l1
     * @param {ListNode} l2
     * @return {ListNode}
     */
    var addTwoNumbers = function(l1, l2) {
        var list = new ListNode(0);
        var result = list;
        var sum, carry = 0;
        while(l1 || l2 || carry>0){  //当l1 或 l2 或有进位存在的时候,加法计算就没有结束
            sum=0;
            if(l1!==null){
                sum += l1.val;
                l1=l1.next;
            }
            if(l2!==null){
                sum += l2.val;
                l2=l2.next;
            }
            sum += carry;
            list.next = new ListNode(sum%10);
            carry = parseInt(sum/10);
            list = list.next;
        }
        return result.next;
        
    };
  • 相关阅读:
    December 23rd 2016 Week 52nd Friday
    December 22nd 2016 Week 52nd Thursday
    December 21st 2016 Week 52nd Wednesday
    December 20th 2016 Week 52nd Tuesday
    December 19th 2016 Week 52nd Sunday
    December 18th 2016 Week 52nd Sunday
    uva294(唯一分解定理)
    uva11624Fire!(bfs)
    fzu2150Fire Game(双起点bfs)
    poj3276Face The Right Way
  • 原文地址:https://www.cnblogs.com/hiluna/p/9307747.html
Copyright © 2011-2022 走看看