【发布时间】:2012-08-16 20:52:35
【问题描述】:
可能重复:
How can I find the common ancestor of two nodes in a binary tree?
first common ancestor of a binary tree
我有一棵二叉树,如下所示。我需要找到最小共同祖先(LCA)。例如,6 和 4 的 LCA 为 1,4 和 5 的 LCA 为 2。
1
/ \
2 3
/ \ / \
4 5 6 7
谁能建议我应该如何处理和解决这个问题?
【问题讨论】:
-
像这样的问题是值得商榷的。你愿意走多远?阅读该领域的几篇论文好吗?添加库依赖会产生太多开销?这是homework?这可以继续
-
stackoverflow.com/questions/10133332stackoverflow.com/questions/5534440stackoverflow.com/questions/6175020stackoverflow.com/questions/3540622stackoverflow.com/questions/5963802stackoverflow.com/questions/6338487stackoverflow.com/questions/7697042stackoverflow.com/questions/3027054stackoverflow.com/questions/11906132
-
您最好的办法是 (a) 找到从根到每个节点的路径,然后 (b) 确定两条路径中最长的公共前缀(前缀中的最后一个顶点是离您最近的共同祖先)。
标签: java algorithm tree binary-tree