我正在为课程处理以下问题:
在二分查找中找到两个节点之间的最不常见的祖先 树。
我已经输入以下代码,并被告知它无法正常工作,即使我认为我已经完成了所有工作。有人可以提供关于我做错了什么的见解吗?
# 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
答案 0 :(得分:1)
快速浏览后:
r
值永远不会更改,因此您的函数要么返回初始r
值,要么在条件满足时陷入无限while
循环。话虽如此,目前还不清楚你打算在那里做什么,所以我无法进一步帮助你。尝试解决这些问题,看看它带给你什么。