Leetcode解題Add Two Numbers Python

858 ワード

原題:
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
コードは次のとおりです.add関数を再帰的に呼び出せばいいです.
class Solution:

    # @param {ListNode} l1

    # @param{ListNode}l2

    # return {ListNode}



    def addTwoNumbers(self, l1, l2):

        return self.add(l1, l2)

    def add(self, l1, l2, s=0):

        l = ListNode(s)

        if l1:

            l.val += l1.val

            l1 = l1.next

        if l2:

            l.val += l2.val

            l2 = l2.next

        s= l.val/10

        l.val = l.val % 10

        if l1 or l2 or s: l.next = self.add(l1, l2, s)

        return l