LeetCode#2 Add two numbers2
2017-10-20 本文已影响8人
夹小欣
这个思路是这位神人给的StefanPochmann,在讨论区里面
class solution:
def addtwonumbers(self,l1,l2):
def toint(node):
return node.val+10*listtoint(node.next) if node else 0
def tolist(n):
#把千百十个转化成个十百千保存
node = ListNode(n%10)
if n>9:
#去掉最低位
node.next=tolist(n/10)
return node
return tolist(toint(l1)+toint(l2))
大神说,之所以可以这么做是因为python可以存很大的数据,我试了一下,sys.maxint=9223372036854775807,确实很大。
一个小问题还用了递归。
去搜了一下
x if y else z
这个用法。
学名叫做三元条件判断表达式,和其他语言中的?:一样的作用,老版本是:
true_part and condition or false_part
这个版本会出现问题,因为 true_part如果为假,python就不会继续向后判断了
http://wangye.org/blog/archives/690/