これを実装するのに問題があります。部分文字列のインデックスを与える最も深いパスを見つけるために、深さ優先検索を行う必要があることはわかっています。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;
}
最終的な目的は、最も深いノードとパスの長さを保存することです。現時点では、パスの長さを出力しようとしています。
ありがとう