2. 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.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
一直兩個很大的數用連結串列逆序表示。
比如:342,表示為:(2 -> 4 -> 3)
465,表示為:(5 -> 6 -> 4)
計算342+465=807,結果也是逆序表示為:7 -> 0 -> 8
在例如,1314+520=1834被表示為:
4->1->3->1, 0->2->5, 結果為:4->3->8->1
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
if l1 is None:
return l2
elif l2 is None:
return l1
else:
carry = 0
ret =ListNode(0) #頭結點
ret_Last = ret
while(l1 or l2):
sum = 0
if(l1):
sum = l1.val
l1 = l1.next
if(l2):
sum += l2.val
l2 = l2.next
sum += carry #如果有進位則加True(1),否則加False(0)
ret_Last.next = ListNode(sum%10)
ret_Last = ret_Last.next
carry = (sum >= 10) #如果sum>10,則carry表示進位,True被當作1來累加
if(carry):
ret_Last.next =ListNode(1)
ret_Last = ret.next
del ret #刪除頭結點
return ret_Last
相關推薦
2. 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
445. Add Two Numbers II 兩個數字相加2
兩個 mono ria most new bsp mod arr inpu You are given two non-empty linked lists representing two non-negative integers. The most significa
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
LeetCode2——Add Two Numbers(兩個連結串列中的數字相加,形成新連結串列)
鄙人不才,故收錄LeetCode中的解法和程式碼。 題目: 參考解法: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *n
2. Add Two Numbers(兩數相加)
給定兩個非空連結串列來代表兩個非負數,位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將這兩數相加會返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例:
LeetCode | Add Two Numbers(兩個連結串列相加)
題目: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nod
leetcode鏈表--14、add-two-numbers(兩鏈表相加 得到新鏈表)
logs 錯誤 align 描述 eight val str nodes sent 題目描述 You are given two linked lists representing two non-negative numbers. The digits are sto
Leetcode# 2. Add Two Numbers(連結串列模擬大數演算法)
Add Two Numbers(連結串列) You are given two non-empty linked lists representing two non-negative integers. The digits are stored in re
【leetcode日記】2.Add Two Numbers(c語言)
Description: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse ord
2. 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
【LeetCode]】add Two Numbers(兩單鏈表對應數值之和)
題目 You are given two linked lists representing two non-negative numbers. The digits are stored in re
LeetCode 2 — Add Two Numbers(C++ Java Python)
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes con
LeetCode 2. Add Two Numbers(C++)
使用了O(1)的額外空間,思路是將兩個連結串列遍歷併合並,合併過程中不斷計算進位,如果計算到最後一次加法仍有進位(可能是兩個連結串列對應位置值相加產生進位或者上一次的進位加本次值又產生進位),那麼需要加一個值為1的新結點。 這種思路的優點是空間複雜度小,缺點是實現比較複雜(
2.Add Two Numbers(1)
(1)最簡單的把功能實現,沒有考慮時間和空間複雜度。 空間方面: 對於公共的連結串列節點,都是開闢新的新的節點儲存資料,完全可以通過先判斷哪個連結串列長度長,然後利用已有的連結串列節點;同是減少了重複程式碼的使用,
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
ZOJ Martian Addition (20進位制的兩個大數相加)
題目連結: #include <cstdio> #include <cmath> #include<vector> #include<cstring> #include<algorithm> #include<cmath>
Java大數相加(多個大數相加)-hdu1250
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1250 題目描述: 題目大意是:已知一個Hat's Fibonacci序列,該序列滿足F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n - 1)
2. Add Two Numbers 兩個數字相加
dtw 個數字 ive question overflow space spa keyword new You are given two non-empty linked lists representing two non-negative integers. The
LeetCode 2.兩數相加 Add Two Numbers (C語言)
題目描述: 給出兩個非空的連結串列用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的連結串列來表示它們的和。 您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。 示例
[Leetcode #2]Add Two Numbers 連結串列儲存的兩個正數相加
原題地址:https://leetcode.com/articles/add-two-numbers/ 題目要求是:以連結串列形式儲存數字,低位在前,完成兩個數相加。例如342表示為2->4->3,465表示為5->6->4,兩個數相加的結果是807