Example #1
0
def test():
    sol = Solution()
    cases = [
        constructBST([1, 2, 3, 4, 5, 6, 7]),
    ]
    for case in cases:
        print(traverse(sol.invertTree(case)))
Example #2
0
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
Example #3
0
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))
Example #4
0
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))
Example #5
0
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))
Example #6
0
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))
Example #7
0
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))