您的位置:首页 > 理论基础 > 计算机网络

https://leetcode.com/problems/add-two-numbers/

2015-04-22 19:04 323 查看
https://leetcode.com/prob
4000
lems/add-two-numbers/

最开始不明白

# Definition for singly-linked list.

# class ListNode:

#     def __init__(self, x):

#         self.val = x

#         self.next = None

是什么意思 后来看了别人的答案 明白是一个链表 

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

将链表数字逆序 相加再逆序即可 

243->342 564->465 342+465=807 807->708 

我的做法是 链表——字符串——int ——加法——字符串——链表 

# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None

class Solution:
# @param {ListNode} l1
# @param {ListNode} l2
# @return {ListNode}
#342+465=807 change to 708
def addTwoNumbers(self, l1, l2):
#l1 l2 is an instance of ListNode
s1=''
s2=''
while l1!=None:
s1=str(l1.val)+s1
l1=l1.next
while l2!=None:
s2=str(l2.val)+s2
l2=l2.next
s=str(int(s1)+int(s2))
s=s[::-1]
sol=ListNode(0)
head=sol
for i in range(len(s)):
if i!=len(s)-1:
sol.next=ListNode(0)
sol.val=int(s[i])
sol=sol.next
else:
sol.val=int(s[i])
return head

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: