二叉搜索树(BST)

定义

  1. 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值
  2. 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值
  3. 任意节点的左、右子树也分别为二叉查找树

增删改查

淋漓尽致的体现了递归的思维

明确 「当前节点」「该做什么」「什么时候做」「注意返回值」

BST--插入

BST--删除

BST--搜索

典型题目

验证/恢复/构建 BST

验证 BST

恢复 BST

前提:已知只有两个节点位置被错误的交换

有序链表转换 BST

类似:有序数组转换 BST

序列化 & 反序列化 BST

前序遍历构造 BST

和反序列化很相似

 

不同的 BST

扩展:不同的 BST II

BST 第k小元素

扩展:无序时,求第k 小/大 元素

借助 优先队列

BST 转化累加树

BST 最近公共祖先

扩展:二叉树最近公共祖先