def test(): sol = Solution() cases = [ constructBST([1, 2, 3, 4, 5, 6, 7]), ] for case in cases: print(traverse(sol.invertTree(case)))
def test(): sol = Solution() valid_cases = [ constructBST([2, 1, 3]), constructBST([5, 3, 7, 2, 4, 6, 8, 1]) ] invalid_cases = [ constructBST([5, 1, 6, None, None, 7, 8]), constructBST([1, 2, 3, 4, 5, 6, 7, 9]) ] methods = ['isValidBST', 'isValidBST2', 'isValidBST_iter'] for method in methods: func = getattr(sol, method) for case in valid_cases: assert func(case) is True for case in invalid_cases: assert func(case) is False
def test(): sol = Solution() cases = [ ([5, 3, 6, 2, 4, None, 7], 9), ([5, 3, 6, 2, 4, None, 7], 5), ] for T, k in cases: print(sol.findTarget(constructBST(T), k))
def test(): sol = Solution() cases = [ # Tree as nodes ([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 4, 2), ([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 5, 2), ] for case in cases: tree, *rest = case print(sol.distanceK(constructBST(tree), *rest))
def main(): sol = Solution() cases = [ ([1, 2], 1), ([1, 2, 2, 3, None, None, None, 3], 9), ([1, 2, 2, 3, 9, 9, 3], 6), ([1, 2, 2, 3, 4, 4, 3, 5, 6, 7, 8, 8, 7, 6, 5], 30), ] for ls, total in cases: tree = constructBST(ls) print(sol.hasPathSum(tree, total))
def main(): sol = Solution() root = constructBST([1, 2, 3, 4, 5, 6, 7, 8]) cases = [ (root, 4, 5), (root, 4, 8), (root, 5, 8), (root, 3, 7), (root, 7, 8) # test cases ] for case in cases: print(sol.lca(*case))
def test(): sol = Solution() cases = [(constructBST([1, 2, 3, 4, 5, 6, 7]), [3, 5])] for case in cases: for root in sol.delNodes(*case): print(_bfs(root))