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
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()))