input: Write a function to calculate the sum of all elements in a given binary tree. If the root is None, return 0. Otherwise, return the value of the current node plus the sums of its left and right subtrees.
  
  assert sum_tree(None)==0
  assert sum_tree(BinaryTreeNode(5, BinaryTreeNode(3), BinaryTreeNode(7)))==15
  assert sum_tree(BinaryTreeNode(2, BinaryTreeNode(4, None, BinaryTreeNode(6)), BinaryTreeNode(8)))==20
  assert sum_tree(BinaryTreeNode(1, BinaryTreeNode(2, BinaryTreeNode(4), BinaryTreeNode(5)), BinaryTreeNode(3)))==15
  assert sum_tree(BinaryTreeNode(0, None, None))==0
output: def sum_tree(root):
      if root is None:
          return 0
      return root.value + sum_tree(root.left) + sum_tree(root.right)