Esempio n. 1
0
def test(method, random_samples=False):
    # test settings
    times = 10

    sol = method()
    nums = [1, 2, 1, 2, 1, 1, 2, 2, 1]
    nums = [1, 2, 3]
    head = list2Tree(nums)
    printT = PrintTree()
    printT.printTree(head)
    res = sol.zigzagLevelOrder(head)
    print(res)
    printT.printTree(head)

    if random_samples:
        import random

        for _ in range(times):
            len1 = random.randint(0, 20)
            data = []
            for __ in range(len1):
                num1 = random.sample(
                    [random.randint(1, 20) for i in range(20)] + [None], 1)
                data += num1
            print('data', data)
            head = list2Tree(data)
            printT.printTree(head)
            res = sol.zigzagLevelOrder(head)
            print(res)
def test(method, random_samples=False):
    # test settings
    times = 10

    sol = method()
    data = [5, 1, 7, None, None, 6, 8]
    # data = [2, 1, 3]
    # data = [3, 1, 5, 0, 2, 4, 6]
    data = [10, 5, 15, None, None, 6, 20]
    from L98_test_case import data

    tree = list2Tree(data)
    printT = PrintTree()
    printT.printTree(tree)

    res = sol.isValidBST(tree)
    print('the tree {} BST '.format(["isn\'t", "is"][res]))

    if random_samples:  # There are other rules constain the data, so it cannot be truly simulate by following code
        import random

        for _ in range(times):
            len1 = random.randint(0, 20)
            data = []
            for __ in range(len1):
                num1 = random.sample(
                    [random.randint(1, 20) for i in range(20)] + [None], 1)
                data += num1
            print(data)
            tree = list2Tree(data)
            printT = PrintTree()
            printT.printTree(tree)

            res = sol.isValidBST(tree)
            print('the tree {} BST '.format(["isn\'t", "is"][res]))
Esempio n. 3
0
def test(method):
    # test settings

    sol = method()
    data = [8, 8, 7, 9, 3, None, None, None, None, 4, 7]
    data2 = [8, 9, 2]

    tree = list2Tree(data)
    printT = PrintTree()
    printT.printTree(tree)
    tree2 = list2Tree(data2)
    printT = PrintTree()
    printT.printTree(tree2)

    res = sol.HasSubtree(tree, tree2)
    print(res)
Esempio n. 4
0
        self.right = None


class Solution:
    def minDepth(self, root: TreeNode) -> int:
        if not root:
            return 0
        else:
            queue = [(root, 1)]
            while queue:
                node, level = queue.pop(0)
                children = (node.left, node.right)
                if not any(children):
                    return level

                for nei in children:
                    if nei:
                        queue.append((nei, level + 1))


from Debug_BST import list2Tree, PrintTree

sol = Solution()
data = ['']

tree = list2Tree(data)
printT = PrintTree()
printT.printTree(tree)

res = sol.minDepth(tree)
print(res)