input: Write a python function to perform in-order traversal on a binary tree.
  assert inorder_traversal(Node(1, Node(2), Node(3))) == [2, 1, 3]
  assert inorder_traversal(Node(1, None, Node(2, Node(3), Node(4)))) == [1, 3, 2, 4]
  assert inorder_traversal(Node(1, Node(2, Node(4), Node(5)), Node(3))) == [4, 2, 5, 1, 3]
output: class Node:
      def __init__(self, value=0, left=None, right=None):
          self.value = value
          self.left = left
          self.right = right
  
  def inorder_traversal(root):
      result = []
      
      def traverse(node):
          if not node:
              return
          traverse(node.left)
          result.append(node.value)
          traverse(node.right)
      
      traverse(root)
      return result