1. 程式人生 > >LeetCode題庫2:兩數相加——JavaScript解答

LeetCode題庫2:兩數相加——JavaScript解答

題目描述:

給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。

你可以假設除了數字 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;
};

歡迎關注博主——小聖賢君,有問題可以留言哦~