思路:
準備乙個變數記錄每次相加之後的進製。遍歷兩個鍊錶,相加對應位置的數(和為sum),並將結果(sum % 10)記錄在乙個新的節點中,之後將節點連線在一起即可。
public listnode addtwonumbers(listnode l1, listnode l2)
listnode head = new listnode(0); // 準備乙個虛擬節點,可以省掉很多判空操作
listnode cur = head;
listnode p1 = l1;
listnode p2 = l2;
int carry = 0; // 記錄進製
while (p1 != null || p2 != null)
if (p2 != null)
cursum += carry;
carry = cursum / 10;;
cur.next = new listnode(cursum % 10);
cur = cur.next;
}if (carry == 1)
return head.next;
}class listnode
}
LeetCode2 兩數相加
嗯。今天兩個簡單題,我可能要墮落了 先貼第乙個 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807...
LeetCode 2 兩數相加
題目 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解題 這題就比較簡單了,兩數相加處理好...
LeetCode 2 兩數相加
題目描述 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。題目思路 先從最低有效位也就是列表 l1 和 l2 的表頭開始相加。由於每位數字都應當處於 0 9 的範圍內,我們計算...