input: Write a function to search for a value in a binary tree.
  assert search({value: 24, left: {value: 19, left: {value: 12, left: None, right: None}, right: None}, right: {value: 38, left: None, right: None}}, 12) == True
  assert search({value: 24, left: {value: 19, left: {value: 12, left: None, right: None}, right: None}, right: {value: 38, left: None, right: None}}, 19) == True
  assert search({value: 24, left: {value: 19, left: {value: 12, left: None, right: None}, right: None}, right: {value: 38, left: None, right: None}}, 38) == True
  assert search({value: 24, left: {value: 19, left: {value: 12, left: None, right: None}, right: None}, right: {value: 38, left: None, right: None}}, 50) == False
output: def search(node, target):
      if node is None:
          return False
      if node['value'] == target:
          return True
      return search(node['left'], target) or search(node['right'], target)