我在实现这一点时遇到了一些麻烦。我知道我需要进行深度优先搜索以找到最深的路径,该路径将给出子字符串的索引。在实施 dfs 时遇到一些问题,可能是我的理解不佳:
int getDeepestPath(TreeNode node)
{
int maxDistance = 0;
TreeNode maxNode;
if(node == null) return 0;
System.out.println(node.getSuffix());
if(node.getSuffix() != -1) return 0;
else
{
TreeNode nextNode = node.getChild();
while(true)
{
int distance = 0;
if(nextNode != null)
{
distance = (nextNode.getRightLabel() -nextNode.getLeftLabel()) + 1;
System.out.println(distance + " distance");
distance = getDeepestPath(nextNode,t2Info) + distance;
if(distance > maxDistance) maxDistance = distance;
nextNode = nextNode.getSibling();
}
else break;
}
}
System.out.println(maxDistance);
return maxDistance;
}
最终的目的是存储最深的节点和路径的长度——我现在只是想打印路径的长度。
谢谢