1
# Definition for a binary tree node.3
# def __init__(self, val=0, left=None, right=None):8
def findParent(self, node, par=None):10
self.parent[node.val] = par11
self.findParent(node.left, node)12
self.findParent(node.right, node)14
def traverse(self, node, done):19
a = self.traverse(self.parent[node.val], done)20
b = self.traverse(node.left, done)21
c = self.traverse(node.right, done)25
def btreeGameWinningMove(self, root: Optional[TreeNode], n: int, x: int) -> bool:28
parent = self.parent[x]34
if parent and parent.left and parent.left.val == x38
up = self.traverse(parent, {node: True})39
left = self.traverse(node.left, {node: True})40
right = self.traverse(node.right, {node: True})41
return (up > left + right) or (left > up + right) or (right > up + left)