java.lang.Object
g1201_1300.s1261_find_elements_in_a_contaminated_binary_tree.FindElements

public class FindElements extends java.lang.Object
1261 - Find Elements in a Contaminated Binary Tree.

Medium

Given a binary tree with the following rules:

  1. root.val == 0
  2. If treeNode.val == x and treeNode.left != null, then treeNode.left.val == 2 * x + 1
  3. If treeNode.val == x and treeNode.right != null, then treeNode.right.val == 2 * x + 2

Now the binary tree is contaminated, which means all treeNode.val have been changed to -1.

Implement the FindElements class:

  • FindElements(TreeNode* root) Initializes the object with a contaminated binary tree and recovers it.
  • bool find(int target) Returns true if the target value exists in the recovered binary tree.

Example 1:

Input [“FindElements”,“find”,“find”] [-1,null,-1,[1],[2]]

Output: [null,false,true]

Explanation:

 FindElements findElements = new FindElements([-1,null,-1]); 
 findElements.find(1); // return False 
 findElements.find(2); // return True

Example 2:

Input [“FindElements”,“find”,“find”,“find”] [-1,-1,-1,-1,-1,[1],[3],[5]]

Output: [null,true,true,false]

Explanation:

 FindElements findElements = new FindElements([-1,-1,-1,-1,-1]); 
 findElements.find(1); // return True 
 findElements.find(3); // return True 
 findElements.find(5); // return False

Example 3:

Input [“FindElements”,“find”,“find”,“find”,“find”] [-1,null,-1,-1,null,-1,[2],[3],[4],[5]]

Output: [null,true,false,false,true]

Explanation:

 FindElements findElements = new FindElements([-1,null,-1,-1,null,-1]); 
 findElements.find(2); // return True 
 findElements.find(3); // return False 
 findElements.find(4); // return False 
 findElements.find(5); // return True

Constraints:

  • TreeNode.val == -1
  • The height of the binary tree is less than or equal to 20
  • The total number of nodes is between [1, 104]
  • Total calls of find() is between [1, 104]
  • 0 <= target <= 106
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    find(int target)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • FindElements

      public FindElements(TreeNode root)
  • Method Details

    • find

      public boolean find(int target)