【发布时间】:2014-05-27 01:14:41
【问题描述】:
我必须编写一个迭代算法来确定 AVL-Tree 是否平衡。
我的第一个方法是找到直接的方法,但几个小时后我放弃了,所以我编写了递归算法并尝试对其进行转换。
这是递归版本的源代码(用python编写)
def isBalanced(root):
if root == None:
return -1
lh = isBalanced(root.left)
rh = isBalanced(root.right)
if lh == -2 or rh == -2:
return -2
if abs(lh - rh) > 1:
return -2
return max(lh, rh) + 1
我现在的问题是,我无法转换它,也许你们中的一个可以给我一个提示或解决我的问题
提前致谢
【问题讨论】:
-
您需要从叶子开始,因为递归所做的是向下到叶子并将子树的高度传播到根。
标签: python algorithm recursion avl-tree iteration