leedcode 两数相加问题在pycharm上的实现代码
#目标用python创建一个单链表,leetcode:两数相加
#第一步:定义节点
class Node(object):
def __init__(self, data):
self.data = data
self.next = None
class SinglelinkedList(object):
def __init__(self):
self.head = None
def addFist(self, data):
node = Node(data)
node.next = self.head
self.head = node
def traversal(self):
l = list()
cur = self.head
while cur is not None:
l.append(cur.data)
cur = cur.next
print(l)
class Solution(object):
def __init__(self):
la = SinglelinkedList()
lb = SinglelinkedList()
def addTwoNumbers(self, la, lb):
carry = 0
start = node = Node(0)
while la or lb:
x = la.data if la else 0
y = lb.data if lb else 0
sum = x + y + carry
node.next = Node(sum % 10)
node = node.next
carry = sum // 10
if la:
la = la.next
if lb:
lb = lb.next
if carry:
node.next = Node(carry)
return start.next
#如何实例化单链表
if __name__ == '__main__':
l1 = SinglelinkedList()
l1.addFist(2)
l1.addFist(1)
l1.addFist(9)
l1.traversal()
a = l1.head
l2 = SinglelinkedList()
l2.addFist(9)
l2.addFist(3)
l2.addFist(9)
l2.traversal()
b = l2.head
solution = Solution()
l3 = SinglelinkedList()
l3.head = solution.addTwoNumbers(a, b)
l3.traversal()



