BST的优秀性质!
All the sub-tree are BST
All elements in left sub-tree is small than root
All elements in Right sub-tree is larger than root
If we do InOrder traversal, the result of BST is a sorted array
find:
十分简单,往左走往右走
加一个点,如同搜索,只是要注意留住父亲的位子

删除我们总是要保证仍旧满足Inorder是升序!
删除节点的思路比较难,首先要定位到那个地方,然后分三种情况
如果左右都Null,也就是说明他是个叶子,那么我们可以直接删除
如果左右有一个是Null,那我们那就用另一边来顶替他的位子
如果左右都不是Null,那我们得找到左子树的最右下角的树来替换,但是注意只是值换掉,而不是整个点搬上去,树的结构并不会大变。注意被替换掉的数,也要进行删除的,所以说存在不能一直走下去,要保留原来的点的父亲在!所以是while(node.right.right!=null)!


网友评论