咨询一下BoBo老师二叉树旋转问题

来源:12-6 LR 和 RL

慕少1651928

2020-05-07

BoBo老师,如果已经有一颗不平衡的二叉搜索树,直接对其进行遍历然后进行类似AVL树创建时的旋转操作,也是可以让这颗树平衡吗?

还是只能先遍历出所有节点,然后重新用AVL创建这种算法重新创建一颗新的AVL树出来。

最近在刷LeetCode(#1382)发现遍历后用AVL的旋转操作并不能使其平衡,还是我的实现有问题?

写回答

1回答

liuyubobobo

2020-05-08

直接操作不可以。


AVL 的添加/删除元素之后依靠旋转维持平衡的前提,是添加/删除这个节点之前,整棵树是平衡的,在这个基础上,只需要根据添加/删除这个节点的位置回溯调整就够了。但如果整棵树本身是随机给出的,不能保证这一点。


继续加油!:)

0
1
慕少1651928
感谢BoBo老师~
2020-05-08
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程