咨询一下BoBo老师二叉树旋转问题
来源:12-6 LR 和 RL
慕少1651928
2020-05-07
BoBo老师,如果已经有一颗不平衡的二叉搜索树,直接对其进行遍历然后进行类似AVL树创建时的旋转操作,也是可以让这颗树平衡吗?
还是只能先遍历出所有节点,然后重新用AVL创建这种算法重新创建一颗新的AVL树出来。
最近在刷LeetCode(#1382)发现遍历后用AVL的旋转操作并不能使其平衡,还是我的实现有问题?
写回答
1回答
-
直接操作不可以。
AVL 的添加/删除元素之后依靠旋转维持平衡的前提,是添加/删除这个节点之前,整棵树是平衡的,在这个基础上,只需要根据添加/删除这个节点的位置回溯调整就够了。但如果整棵树本身是随机给出的,不能保证这一点。
继续加油!:)
012020-05-08