Example #1
0
    def test_invalidTreeIsNotBST(self):

        root = TreeNode(20)
        root.left = TreeNode(10)
        root.right = TreeNode(30)
        root.right.left = TreeNode(5)
        root.right.right = TreeNode(40)

        self.assertFalse(is_bst(root))
Example #2
0
    def test_validBinaryTreeIsValid(self):

        root = TreeNode(5)
        root.left = TreeNode(3)
        root.right = TreeNode(7)
        root.left.left = TreeNode(1)
        root.left.right = TreeNode(4)
        root.right.left = TreeNode(6)

        self.assertTrue(is_bst(root))
Example #3
0
 def remove_by_recursion(self, value):
     if not self.root:
         return False
     elif value == self.root.data:
         temp_root = TreeNode()      # 创建一个临时节点 方便处理
         temp_root.left = self.root
         ret = BinarySearchTree.__remove__(temp_root.left, temp_root, value)
         self.root = temp_root.left
         return ret
     elif value < self.root.data and self.root.left:
         return BinarySearchTree.__remove__(self.root.left, self.root, value)
     elif value > self.root.data and self.root.right:
         return BinarySearchTree.__remove__(self.root.right, self.root, value)
     return False