from linked_list import Node l1 = Node() l1.insert_at_beginning(7) l1.insert_at_end(2) l1.insert_at_end(4) l1.insert_at_end(3) # l1.insert_at_end(5) l2= Node() l2.insert_at_beginning(5) l2.insert_at_end(6) l2.insert_at_end(4) class ListNode(object): def __init__(self, x): self.data = x self.next = None class Solution(object): def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ l1 = self.reverse(l1) l2 = self.reverse(l2)
""" Reverse a Linked List with O(1) space, without using recursion. """ import copy from linked_list import Node node = Node() node.insert_at_beginning(1) node.insert_at_end(2) node.insert_at_end(3) node.insert_at_end(4) node.insert_at_end(5) prev_node = None next_node = node.head.next while (True): node.head.next = prev_node if next_node == None: break prev_node = node.head node.head = next_node next_node = next_node.next node.print_list()