1. 程式人生 > >2. Add Two Numbers(兩個大數相加)

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 Numbersc語言

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 2Add Two NumbersC++ 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 NumbersC++

使用了O(1)的額外空間,思路是將兩個連結串列遍歷併合並,合併過程中不斷計算進位,如果計算到最後一次加法仍有進位(可能是兩個連結串列對應位置值相加產生進位或者上一次的進位加本次值又產生進位),那麼需要加一個值為1的新結點。 這種思路的優點是空間複雜度小,缺點是實現比較複雜(

2.Add Two Numbers1

(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