Ejemplo n.º 1
0
def addTwoNumbers(l1, l2):
    l1_node = l1
    stack1 = Stack()
    while l1_node:
        stack1.push(l1_node.val)
        l1_node = l1_node.next

    l2_node = l2
    stack2 = Stack()
    while l2_node:
        stack2.push(l2_node.val)
        l2_node = l2_node.next

    result = ListNode(None)
    s = 0
    while stack1.size() > 0 and stack2.size() > 0:
        num1 = stack1.pop()
        num2 = stack2.pop()

        node = ListNode(((num1 + num2 + s) % 10))
        node.next = result.next
        result.next = node
        s = int((num1 + num2 + s) / 10)

    stack = stack1 if stack1.size() > 0 else stack2
    while stack.size() > 0:
        num = stack.pop()
        node = ListNode(((num + s) % 10))
        node.next = result.next
        result.next = node
        s = int((num + s) / 10)
    if s > 0:
        node = ListNode(s)
        node.next = result.next
        result.next = node

    return result.next
Ejemplo n.º 2
0
from stack.Stack import Stack

__author__ = 'lijiayan'

if __name__ == '__main__':
    s = Stack()
    s.push(1)
    s.push(2)
    s.push(3)

    for i in range(s.size()):
        print(s.pop())

    print("栈大小:" + str(s.size()))