1
# Definition for a binary tree node.3
# def __init__(self, val=0, left=None, right=None):8
def traverse(self, node, par):10
self.parent[node.val] = par11
self.traverse(node.left, node)12
self.traverse(node.right, node)14
def deleteNode(self, toDelete):16
par = self.parent[toDelete]17
if par.val == toDelete:19
elif par.left and par.left.val == toDelete:21
elif par.right and par.right.val == toDelete:24
self.unique[node.left] = True26
self.unique[node.right] = True28
if node in self.unique:30
if node != self.parent[toDelete]:37
self, root: Optional[TreeNode], to_delete: List[int]40
self.traverse(root, root)41
self.unique = {root: True}42
for node in to_delete: