LeetCode題庫2:兩數相加——JavaScript解答
阿新 • • 發佈:2018-12-12
題目描述:
給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。
你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。
示例:
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 輸出:7 -> 0 -> 8 原因:342 + 465 = 807
解答方案:
/** * 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 head = new ListNode(0); var temp1 = 0; var temp2 = 0; var val1; var val2; while (l1 || l2 || temp1) { if (l1) val1 = l1.val; else val1 = 0; if (l2) val2 = l2.val; else val2 = 0; temp2 = Math.floor((val1 + val2 + temp1) % 10); temp1 = Math.floor((val1 + val2 + temp1) / 10); head.val += 1; var newNode = new ListNode(temp2); if (head.next == null) { head.next = newNode; } else { var tempNode = head.next; while (tempNode.next != null) tempNode = tempNode.next; tempNode.next = newNode; } if (l1) l1 = l1.next; if (l2) l2 = l2.next; } return head.next; };
歡迎關注博主——小聖賢君,有問題可以留言哦~