Example #1
0
 def recover(node: TreeNode) -> None:
     if node:
         if node.val == swap_nums[0]:
             node.val = swap_nums[1]
         elif node.val == swap_nums[1]:
             node.val = swap_nums[0]
         recover(node.left)
         recover(node.right)
Example #2
0
 def dfs(node: TreeNode) -> None:
     if node.right:
         dfs(node.right)
     self.v += node.val
     node.val = self.v
     if node.left:
         dfs(node.left)
Example #3
0
 def remove(node: TreeNode) -> Optional[TreeNode]:
     if not node.left:
         return node.right
     if not node.right:
         return node.left
     node.val = find_min(node.right)
     node.right = self.delete_node(node.right, node.val)
     return node