This commit is contained in:
parent
b23b0179f0
commit
8361e8fed6
1 changed files with 32 additions and 0 deletions
32
medium/find_elements_in_a_contaminated_binary_tree.py
Normal file
32
medium/find_elements_in_a_contaminated_binary_tree.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# https://leetcode.com/problems/find-elements-in-a-contaminated-binary-tree
|
||||
|
||||
from typing import Optional, Set
|
||||
|
||||
class TreeNode:
|
||||
def __init__(self, val=0, left=None, right=None):
|
||||
self.val = val
|
||||
self.left = left
|
||||
self.right = right
|
||||
|
||||
class FindElements:
|
||||
r: Optional[TreeNode]
|
||||
s: Set[int]
|
||||
|
||||
def __init__(self, root: Optional[TreeNode]):
|
||||
self.r = root
|
||||
self.s = set()
|
||||
if self.r is not None:
|
||||
self.s.add(0)
|
||||
self.recurse_init(self.r, 0)
|
||||
|
||||
def recurse_init(self, curr: TreeNode, curr_val: int):
|
||||
if curr.left is not None:
|
||||
self.s.add(curr_val * 2 + 1)
|
||||
self.recurse_init(curr.left, curr_val * 2 + 1)
|
||||
if curr.right is not None:
|
||||
self.s.add(curr_val * 2 + 2)
|
||||
self.recurse_init(curr.right, curr_val * 2 + 2)
|
||||
|
||||
def find(self, target: int) -> bool:
|
||||
return target in self.s
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue