""" from binary_tree import Node, Tree def returnDeepestNode(root, depth): if root.left == None and root.right == None: return (root.data, depth) left_depth = depth right_depth = depth if root.left: left_deepest, left_depth = returnDeepestNode(root.left, depth + 1) if root.right: right_deepest, right_depth = returnDeepestNode(root.right, depth + 1) return (left_deepest, left_depth) if left_depth > right_depth \ else (right_deepest, right_depth) def returnDeepestNodeHelper(root): return returnDeepestNode(root, 0) if __name__ == "__main__": tree = Tree() tree.insert_left("a") tree.insert_left("b") tree.insert_left("d") tree.insert_right("c") print(returnDeepestNodeHelper(tree.root))
\ / \ f e d """ from binary_tree import Node, Tree def invert_tree(root): if not root: return inverted_left = invert_tree(root.right) inverted_right = invert_tree(root.left) root.left = inverted_left root.right = inverted_right return root if __name__ == "__main__": tree = Tree() tree.insert_left("a") tree.insert_left("b") tree.insert_left("d") tree.insert_right("d") tree.insert_right("e") tree.insert_left("f") inversed_tree = invert_tree(tree.root) print(inversed_tree.data) print(inversed_tree.right.data)