leetCode OJ 第二题

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)

Output: 7 -> 0 -> 8

解析:把两个逆序存储的两个数相加

完整代码:

class ListNode(object):
	def __init__(self,x):
		self.val=x
		self.next=None
	def setVal(self,a,b):
		t=self
		t.next=ListNode(a)
		t=t.next
		t.next=ListNode(b)
		return self

class Solution(object):
	def addTwoNumbers(self,l1,l2):
 		h=ListNode(0)
		value=0
		p=h
		while l1 or l2:
			sum=value
			if l1:
				sum,l1=l1.val+sum,l1.next
			if l2:
				sum,l2=l2.val+sum,l2.next
			p.next=ListNode(sum%10)
			value=sum/10
			p=p.next
		p.next=ListNode(value)  if value else None
		return h.next

def start():
	l1=ListNode(2)
	l1.setVal(4,3)
	l2=ListNode(5)
	l2.setVal(6,4)
	add=Solution()
	l3=add.addTwoNumbers(l1,l2)
	while l3:
		print l3.val,
		l3=l3.next


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值