找到二进制搜索树的最不常见的祖先时出错

时间:2017-04-06 19:58:13

标签: python algorithm binary-search-tree

我正在为课程处理以下问题:

  

在二分查找中找到两个节点之间的最不常见的祖先   树。

我已经输入以下代码,并被告知它无法正常工作,即使我认为我已经完成了所有工作。有人可以提供关于我做错了什么的见解吗?

# Main Function.
def Question4(T, r, n1, n2):
    # Compare values of n1, n2, in relation to r to find LCA.
    while not n1 <= r <= n2:
        r = r if n1 <= r else r
    # return LCA.
    return r

# Test Cases.
T = [[0, 1, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 1],
[0, 0, 0, 0, 0]]
r = 3
p = 1
q = 4
print ("Least Common Ancestor is:", Question4(T, r, p, q))
# Least Common Ancestor:
# 3

1 个答案:

答案 0 :(得分:1)

快速浏览后:

  1. 您的功能根本不使用T.无论存储在何处,这些信息都不会引起注意。
  2. r值永远不会更改,因此您的函数要么返回初始r值,要么在条件满足时陷入无限while循环。
  3. 话虽如此,目前还不清楚你打算在那里做什么,所以我无法进一步帮助你。尝试解决这些问题,看看它带给你什么。