小记录22

43 阅读1分钟

235. 二叉搜索树的最近公共祖先

利用 BST 的性质加速查找,如果发现 pq在两边的话那么当前node即为所求

701.二叉搜索树中的插入操作

肯定可以插在叶子的位置,因此还是利用 BST 判断是该 insert left subtree/rightsubtree,然后便利到 null 即为应插入位置

450.删除二叉搜索树中的节点

这道题有难度的。

搜索仍然按照 BST 的性质进行搜索

对于插入时候,如果是 leaf 直接删除了就行了,但是如果不是的话,需要 rebuild tree

具体而言,如果有 right subtree, 需要找到 right subtree 的 leftmost node, 找到他之后把它挪到当前该删除的 node 位置,然后再删除这个 leftmost node,相当于是挪了个窝... 挪动这个节点的目的是

如果没有的话,那么就是有 left substree,这时候挪窝的是 left subtree 的 rightmost node