两数相加
用python3更方便,有内置的ListNode。
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = nextclass Solution(object):def cycles(self,head):now = headindex = 0while(now):index += 1now = now.nextreturn indexdef addTwoNumbers(self, l1, l2):""":type l1: ListNode:type l2: ListNode:rtype: ListNode"""len1 = self.cycles(l1)len2 = self.cycles(l2)if len1 > len2:long_list = l1long_len = len1short_list = l2short_len = len2else:long_list = l2long_len = len2short_list = l1short_len = len1i = 0a = short_listb = long_listflag = 0while(i<long_len):if i < short_len:sum = a.val + b.val + flagif sum < 10:b.val = sumflag = 0else:b.val = sum % 10flag = 1if a.next:a = a.nextif b.next:b = b.nextelse:sum = b.val + flagif sum < 10:b.val = sumflag = 0else:b.val = sum % 10flag = 1if b.next:b = b.nexti += 1if flag != 0:end = ListNode(flag)b.next = endreturn long_list