Пример #1
0
        if not node.left and not node.right:
            leaves.append(node.val)
            return leaves

        return leaves


if __name__ == '__main__':
    s = Solution()

    # r1 = Tree('[3,5,1,6,2,9,8,null,null,7,4]')
    # r2 = Tree('[3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]')
    # print(s.leafSimilar(r1, r2))
    #
    # r3 = Tree('[1]')
    # r4 = Tree('[2]')
    # print(r3.get_nodes())
    # print(r4.get_nodes())
    #
    # print(s.leafSimilar(r3, r4))

    r5 = Tree('[1,2,3]')
    r6 = Tree('[1,3,2]')
    print(r5.get_nodes())
    print(r6.get_nodes())

    print(s._tree_leaves(r5))
    print(s._tree_leaves(r6))
    print(s.leafSimilar(r5, r6))
Пример #2
0
        :type R: int
        :rtype: TreeNode
        """

        if not node:
            return

        if node.val is not None and node.val < L:
            node = self._trimBST(node.right, L, R)

        elif node.val is not None and node.val > R:
            node = self._trimBST(node.left, L, R)

        if not node:
            return

        node.right = self._trimBST(node.right, L, R)
        node.left = self.trimBST(node.left, L, R)
        return node


if __name__ == '__main__':
    s = Solution()
    root = Tree([1, 0, 2])
    print(root.get_nodes())
    print(s.trimBST(root, 1, 2).get_nodes())

    root = Tree([3, 0, 4, None, 2, None, None, 1])
    print(root.get_nodes())
    print(s.trimBST(root, 1, 3).get_nodes())