生活随笔
收集整理的這篇文章主要介紹了
两个链表生成相加链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
兩個鏈表生成相加鏈表
題目
思路
先將兩個鏈表分別反轉從頭部開始相加(注意進位及一個鏈表遍歷完的情況)再將相加后的鏈表反轉
class ListNode:def __init__(self
, x
):self
.val
= xself
.next = None
def reverse(p
):pre
= ptail
= Nonewhile p
:pre
= pre
.nextp
.next = tailtail
= pp
= pre
return tail
def one_list(p1
,pr
,add
):while p1
:r
= p1
.val
+ add
if r
>= 10:add
= 1r
= r
- 10else:add
= 0pr
.next = ListNode
(r
)pr
= pr
.nextp1
= p1
.nextif add
:pr
.next = ListNode
(add
)pr
= pr
.nextreturn pr
class Solution:def addInList(self
, head1
, head2
):if not head1
: return head2
if not head2
:return head1p1
= reverse
(head1
)p2
= reverse
(head2
)pr
= ListNode
(None)ph
= pradd
= 0while p1
and p2
:r
= p1
.val
+ p2
.val
+ add
if r
>= 10:add
= 1r
= r
- 10else:add
= 0pr
.next = ListNode
(r
)pr
= pr
.nextp1
= p1
.nextp2
= p2
.nextif p1
:pr
= one_list
(p1
,pr
,add
)if p2
:pr
= one_list
(p2
,pr
,add
)p
= ph
.nextreturn reverse
(p
)
總結
以上是生活随笔為你收集整理的两个链表生成相加链表的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。