input: Write a python function to delete a node from a singly linked list without head pointer.
  assert delete_node(Node(2, Node(3, Node(4)))) == [3, 4]
  assert delete_node(Node(1, Node(2, Node(3, Node(4, Node(5)))))) == [2, 3, 4, 5]
  assert delete_node(Node(10, Node(20, Node(30)))) == [20, 30]
output: class Node:
      def __init__(self, value=0, next=None):
          self.value = value
          self.next = next
  
  def delete_node(node):
      node.value = node.next.value
      node.next = node.next.next
  
  def list_from_node(node):
      result = []
      while node:
          result.append(node.value)
          node = node.next
      return result
  
  # Testing the delete_node function
  n = Node(2, Node(3, Node(4)))
  delete_node(n)
  assert list_from_node(n) == [3, 4]
  
  n = Node(1, Node(2, Node(3, Node(4, Node(5)))))
  delete_node(n)
  assert list_from_node(n) == [2, 3, 4, 5]
  
  n = Node(10, Node(20, Node(30)))
  delete_node(n)
  assert list_from_node(n) == [20, 30]