input: Write a python function to sum two linked lists.
  assert sum_linked_lists(Node(2, Node(4, Node(3))), Node(5, Node(6, Node(4)))).to_list() == [7, 0, 8]
  assert sum_linked_lists(Node(0), Node(0)).to_list() == [0]
  assert sum_linked_lists(Node(9, Node(9, Node(9, Node(9, Node(9, Node(9, Node(9))))))), Node(9, Node(9, Node(9, Node(9))))).to_list() == [8, 9, 9, 9, 0, 0, 0, 1]
output: class Node:
      def __init__(self, value=0, next=None):
          self.value = value
          self.next = next
  
      def to_list(self):
          result = []
          current = self
          while current:
              result.append(current.value)
              current = current.next
          return result
  
  def sum_linked_lists(l1, l2):
      dummy_head = Node(0)
      current, carry = dummy_head, 0
  
      while l1 or l2 or carry:
          val1 = l1.value if l1 else 0
          val2 = l2.value if l2 else 0
  
          total = val1 + val2 + carry
          carry = total // 10
          current.next = Node(total % 10)
          current = current.next
  
          if l1:
              l1 = l1.next
          if l2:
              l2 = l2.next
  
      return dummy_head.next