1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
class FindElements {
Set<Integer> set = new HashSet<>();
public FindElements(TreeNode root) { root.val = 0; dfs(root); } public boolean find(int target) { return set.contains(target); }
private void dfs(TreeNode root) { if (root == null) return; int x = root.val; set.add(x); if (root.left != null) root.left.val = 2 * x + 1; if (root.right != null) root.right.val = 2 * x + 2; dfs(root.left); dfs(root.right); } }
|