二叉树中是否存在某个元素

题目:某个二叉树中是否存在一个元素

输入:二叉树和target

输出:True or False

思路:如果此节点的值==target,则返回True,否则看左右子树中是否存在此元素

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class :
def __init__(self, x):
self.val = x
self.left = None
self.right = None


def contain(root, key):
if not root:
return False
if root.val == key:
return True
return contain(root.left, key) or contain(root.right, key)


tree = TreeNode(3)
left_tree = TreeNode(9)
right_tree = TreeNode(20)
right_tree.left = TreeNode(15)
right_tree.right = TreeNode(7)
tree.left = left_tree
tree.right = right_tree
print(contain(tree, 200))