1 class FindElements: 2 3 def __init__(self, root: TreeNode): 4 self.ary = [] 5 if root != None: 6 self.recoverTree(root,0) 7 8 9 def recoverTree(self,root,v): 10 root.val = v 11 self.ary.append(v) 12 if root.left != None: 13 self.recoverTree(root.left,v * 2 + 1) 14 if root.right != None: 15 self.recoverTree(root.right,v * 2 + 2) 16 17 18 19 def find(self, target: int) -> bool: 20 return target in self.ary
对树进行先序遍历,遍历的过程中将当前节点的值还原,同时记录在全局的数组中。
调用find方法时,不需要再次遍历树,只需要在全局数组中查询是否存在即可。