Esempio n. 1
0
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()