コード例 #1
0
def sumLists(ll1, ll2):
    ll3 = LinkedList()
    node1 = ll1.head
    node2 = ll2.head

    while node1 or node2:
        if node1 and node2:
            node1 = node1.next
            node2 = node2.next
        elif node1:
            node1 = node1.next
            ll2.addAsHead(0)
        elif node2:
            node2 = node2.next
            ll1.addAsHead(0)

    node1 = ll1.head
    node2 = ll2.head

    def sumNodes(node1, node2):
        if node1 and node2:
            print('node1', node1.value)
            print('node2', node2.value)
            addition = node1.value + node2.value + sumNodes(
                node1.next, node2.next)
            print('addition', addition)
            if addition > 9:
                ll3.addAsHead(addition - 10)
                return 1
            else:
                ll3.addAsHead(addition)
                return 0
        return 0

    carry = sumNodes(node1, node2)
    if carry == 1:
        ll3.addAsHead(1)

    return ll3