bumpsoo 2025-02-22 02:21:36 +09:00
parent b23b0179f0
commit 8361e8fed6

View 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