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方法时,不需要再次遍历树,只需要在全局数组中查询是否存在即可。

posted on 2019-11-17 12:14  Sempron2800+  阅读(294)  评论(0编辑  收藏  举报