我有一个使用Java创建的Jtree。现在我想找到Jtree中两个节点之间最短路径的大小。
示例:
b to c ----size of the shortest path=2
d to f-----size of the shortest path=2
d to g-----size of the shortest path=3
我使用了以下代码。我使用了SharedAncestor
。
public int nodeDistance(String s1, String s2) {
JavaTreeFinal obt1 = new JavaTreeFinal();
DefaultMutableTreeNode term1 = obt1.nodeReg.get((String) s1);
DefaultMutableTreeNode term2 = obt1.nodeReg.get((String) s2);
TreeNode sharedAncestor = term1.getSharedAncestor(term2);
int levelAns = ((DefaultMutableTreeNode) sharedAncestor).getLevel();
int levelTerm1 = term1.getLevel();
int levelTerm2 = term2.getLevel();
int level1 = levelTerm1-levelAns;
int level2 = levelTerm1-levelAns;
int shortPath = level1+level2;
return shortPath;
}
使用SharedAncestor
可以正确使用吗?
因为如果有更多的SharedAncestors它会给出错误吗?
此代码仅提供一个SharedAncestors。它离SharedAncestors最近吗?
或者任何其他简单而正确的方法来找到它?
如何使用Java找到它?