二叉搜索树
定义
应用
验证二叉搜索树
public bool IsValidBST(TreeNode root)
{
return IsValidBST_DivideAndConquer(root, long.MinValue, long.MaxValue);
}
bool IsValidBST_DivideAndConquer(TreeNode? p, long? min, long? max)
{
if (p?.val == null)
{
return true;
}
// 返回条件
if (p.val <= min || max <= p.val)
{
return false;
}
// 分治(Divide)
var left = IsValidBST_DivideAndConquer(p.left, min, p.val);
var right = IsValidBST_DivideAndConquer(p.right, p.val, max);
// 合并结果(Conquer)
return left && right;
}二叉搜索树中的插入操作
删除二叉搜索树中节点
平衡二叉树
练习
最后更新于