【发布时间】:2018-04-10 13:48:00
【问题描述】:
我在 Python 中有一个递归方法。不确定它是否有帮助,但它会检查 AVL 树的不平衡程度。例如,10,20,30 是“rr”,30,20,10 是“ll”,10,20,15 是“rl”,20,10,15 是“lr”。
这是我的代码:
def rotation_type(bst, ptr='dummy'):
if ptr == 'dummy':
ptr = bst.root
if ptr.left != None or ptr.right != None:
if ptr.left != None:
return 'l', rotation_type(bst,ptr.left)
else:
return 'r', rotation_type(bst,ptr.right)
我的代码有效,但它返回一个元组。例如,如果我的二叉树是 [10,20,30],它会返回 ('r', ('r', None))。有没有办法只返回像'rr'这样的字符串?抱歉,如果以前有人问过这个问题,但我在任何地方都找不到。在此先感谢
【问题讨论】:
-
对于两个孩子都存在的节点应该返回什么?然后节点平衡,但您可能希望在两个孩子中继续递归?
-
如果两者都存在,我已经得到了函数,如果没有,我正在调用这个函数
标签: python python-3.x recursion tuples