當(dāng)前位置:
首頁(yè) >
两数相加python代码实现(leetcode2)
發(fā)布時(shí)間:2025/3/15
26
豆豆
生活随笔
收集整理的這篇文章主要介紹了
两数相加python代码实现(leetcode2)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述:
給出兩個(gè) 非空 的鏈表用來(lái)表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的,并且它們的每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。
如果,我們將這兩個(gè)數(shù)相加起來(lái),則會(huì)返回一個(gè)新的鏈表來(lái)表示它們的和。
您可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開(kāi)頭。
知識(shí)點(diǎn):結(jié)構(gòu)體中鏈表的操作
使用構(gòu)造函數(shù)初始化結(jié)點(diǎn)(這里使用C++里面來(lái)解釋鏈表操作的)
struct listnode {double value;listnode *next;listnode(double value,list *next=nullptr){value =valuel;next=nextl;} };創(chuàng)建 12.5->13.5的鏈表
listnode *secondptr=new listnode(13.5) //為第二個(gè)指針指向的位置賦值 listnode *head=new listnode(12.5 secondptr)//將頭指針指向第二個(gè)指針 連接鏈表我們可以進(jìn)一步簡(jiǎn)化代碼
listnode *head= new listnode(13.5) listnode *head =new listnode(12.5,head)//12.5替代原來(lái)(13.5)成為新的頭結(jié)點(diǎn)經(jīng)過(guò)簡(jiǎn)化的代碼在鏈表操作方面和我們就和我們的python代碼有點(diǎn)像了
class Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:sum = 0i = 0c = 0l = ListNode(0)ll = ListNode(0)while True:if l1 != None and l2 != None :a = l1.val + l2.vall1 = l1.nextl2 = l2.nextelif l1 != None:a = l1.vall1 = l1.nextelse:a = l2.vall2 = l2.nexta += cb = a % 10c = a // 10if i == 0: #i用來(lái)處理頭結(jié)點(diǎn),只用到一次l = ListNode(b)ll = lelse:ll.next = ListNode(b) #b無(wú)論何時(shí)都是1位數(shù)為結(jié)點(diǎn)賦值為bll = ll.next #連接鏈表,指向下一結(jié)點(diǎn)i+=1if l1 == None and l2 == None:if c != 0:ll.next = ListNode(c) #產(chǎn)生進(jìn)位return l?
總結(jié)
以上是生活随笔為你收集整理的两数相加python代码实现(leetcode2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LSTM拟合正弦曲线代码(转载)
- 下一篇: 中文语音情感识别python实现(一)