如果一颗二叉树的每个结点只有左子树,或者只有右子树,是不是成一个链表啦。
比如在二叉搜索树里面,如果一直从小到大插入元素,就退化成一个链表了。为了防止退化,才需要各种平衡的二叉树。
二叉查找树的特点就是左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大,如上图:
基于二叉查找树的这种特点,我们在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n 个节点的二叉查找树,正常的情况下,查找的时间复杂度为 O(logn)。
之所以说是正常情况下,是因为二叉查找树有可能出现一种极端的情况,例如下图所示
这种情况也是满足二叉查找树的条件,然而,此时的二叉查找树已经近似退化为一条链表,这样的二叉查找树的查找时间复杂度顿时变成了 O(n),可想而知,我们必须不能让这种情况发生,为了解决这个问题,于是我们引申出了平衡二叉树。
二叉树什么时候会退化?
最新推荐文章于 2024-04-18 20:33:22 发布