/ CODING, LEETCODE

Add Two Numbers

Add Two Numbers

Helper function을 두개 써서.. 1) LL to integer 2) integer to LL

바꾸고, 더하고, 다시 바꾸면.. O(n) 이 되겠시며.

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def parseList(self, ll):
        num = 0
        iter = ll
        power = 0
        while True:
            num += iter.val * (10 ** power)
            if iter.next is None:
                break
            else:
                iter = iter.next
                power += 1

        return num

    def numToList(self, num):
        l = ListNode(num % 10)
        iter = l
        num /= 10

        while num > 0:
            iter.next = ListNode(num % 10)
            iter = iter.next
            num /= 10

        return l

    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """

        '''
        1) parse lists into number
        2) convert the sum into linked list and return
        '''
        num1 = self.parseList(l1)
        num2 = self.parseList(l2)

        sum = num1 + num2
        print num1, "+", num2, "=", sum

        return self.numToList(sum)