加了Python实现单链表的代码。
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class LinkList:
def __init__(self):
self.head=None
def initList(self, data):
# 创建头结点
self.head = ListNode(data[0])
r = self.head
p = self.head
# 逐个为 data 内的数据创建结点, 建立链表
for i in data[1:]:
node = ListNode(i)
p.next = node
p = p.next
return r
def printlist(self,head):
if head == None: return
node = head
while node != None:
print(node.val,end=' ')
node = node.next
class Solution(object):
def _addTwoNumbers(self, l1, l2):
p = dummy = ListNode(-1)
carry = 0
while l1 and l2:
p.next = ListNode(l1.val+l2.val+carry)
carry = p.next.val/10
p.next.val %= 10
p = p.next
l1 = l1.next
l2 = l2.next
res = l1 or l2
while res:
p.next = ListNode(res.val + carry)
carry = p.next.val/10
p.next.val %= 10
p = p.next
res = res.next
if carry:
p.next = ListNode(1)
return dummy.next
if __name__ == '__main__':
l_1 = LinkList()
l_2 = LinkList()
data1 = [1, 2, 3]
data2 = [5, 6, 4]
data1_1 = ListNode(data1)
data1_2 = ListNode(data2)
l1 = l_1.initList(data1)
l2 = l_2.initList(data2)
a = Solution()
c = a._addTwoNumbers(l1, l2)