input: Write a function to merge two sorted singly-linked lists.
  assert merge(Node(1, Node(3, Node(5))), Node(2, Node(4, Node(6)))).data == 1
  assert merge(Node(1, Node(3, Node(5))), Node(2, Node(4, Node(6)))).next.data == 2
  assert merge(Node(1, Node(3, Node(5))), Node(2, Node(4, Node(6)))).next.next.data == 3
  assert merge(Node(1, Node(3, Node(5))), Node(2, Node(4, Node(6)))).next.next.next.data == 4
  assert merge(Node(1, Node(3, Node(5))), Node(2, Node(4, Node(6)))).next.next.next.next.data == 5
  assert merge(Node(1, Node(3, Node(5))), Node(2, Node(4, Node(6)))).next.next.next.next.next.data == 6
output: class Node:
      def __init__(self, data=0, next=None):
          self.data = data
          self.next = next
  
  def merge(l1, l2):
      dummy = Node()
      tail = dummy
  
      while l1 and l2:
          if l1.data < l2.data:
              tail.next = l1
              l1 = l1.next
          else:
              tail.next = l2
              l2 = l2.next
          tail = tail.next
  
      tail.next = l1 if l1 else l2
  
      return dummy.next