我正在尝试旋转一棵树来保持其平衡,但我在这个例子中遇到了困难。我不太确定我在这里做错了什么。
我有一棵树,节点30的左右高度差为1。因此,我猜测这棵树是平衡的。
我在这里加了22,加完后得到了这个结果。
在节点20处,左右高度差为1,但在节点30处高度差为2。所以,我猜它不再平衡。我试图右旋树来平衡它,但我得到了下面的树。
旋转后,节点20仍然具有2的L/R高度差。
我做错了什么?这棵树能用旋转平衡吗?
我可以使用排序数组方法来平衡这棵树,就像下面这样,但是我对这个例子中的旋转平衡非常困惑。
这里我做错了什么?
谢谢!
我有一棵树,节点30的左右高度差为1。因此,我猜测这棵树是平衡的。
30
/ \
20 60
/ \
10 25
我在这里加了22,加完后得到了这个结果。
30
/ \
20 60
/ \
10 25
/
22
在节点20处,左右高度差为1,但在节点30处高度差为2。所以,我猜它不再平衡。我试图右旋树来平衡它,但我得到了下面的树。
20
/ \
10 30
/ \
25 60
/
22
旋转后,节点20仍然具有2的L/R高度差。
我做错了什么?这棵树能用旋转平衡吗?
我可以使用排序数组方法来平衡这棵树,就像下面这样,但是我对这个例子中的旋转平衡非常困惑。
22 25
/ \ / \
20 30 20 30
/ / \ / \ \
10 25 60 10 22 60
这里我做错了什么?
谢谢!