input: Write a python function to predict the outcome based on the decision tree provided.
  assert predict([2.5], {'node_type': 'leaf', 'value': 'A'}) == 'A'
  assert predict([1.5], {'node_type': 'split', 'feature_index': 0, 'value': 2, 'left_child': {'node_type': 'leaf', 'value': 'B'}, 'right_child': {'node_type': 'leaf', 'value': 'C'}}) == 'B'
  assert predict([3.5], {'node_type': 'split', 'feature_index': 0, 'value': 3, 'left_child': {'node_type': 'leaf', 'value': 'B'}, 'right_child': {'node_type': 'leaf', 'value': 'C'}}) == 'C'
output: def predict(features, tree):
      if tree['node_type'] == 'leaf':
          return tree['value']
      if features[tree['feature_index']] <= tree['value']:
          return predict(features, tree['left_child'])
      else:
          return predict(features, tree['right_child'])