采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
BoBo老师,如果已经有一颗不平衡的二叉搜索树,直接对其进行遍历然后进行类似AVL树创建时的旋转操作,也是可以让这颗树平衡吗?
还是只能先遍历出所有节点,然后重新用AVL创建这种算法重新创建一颗新的AVL树出来。
最近在刷LeetCode(#1382)发现遍历后用AVL的旋转操作并不能使其平衡,还是我的实现有问题?
直接操作不可以。
AVL 的添加/删除元素之后依靠旋转维持平衡的前提,是添加/删除这个节点之前,整棵树是平衡的,在这个基础上,只需要根据添加/删除这个节点的位置回溯调整就够了。但如果整棵树本身是随机给出的,不能保证这一点。
继续加油!:)
感谢BoBo老师~
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
11.2k 16
1.8k 17
1.7k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号