再帰的な関数を呼び出すプログラムがあります。
int dd=dis(root,2,0);
機能コード
public int dis(Node n,int g,int count)
{
if(g==n.data)
{
System.out.println("equal count"+count);
return count;
}
else if(g>n.data)
{
count=count+1;
dis(n.right,g,count);
}
else if(g<n.data)
{
count=count+1;
dis(n.left,g,count);
}
System.out.println("function"+count);
return count;
}
データがノード値と等しい場合、関数は、必要な正確な値である count を返します。ただし、count を返した後も再帰が続き、関数の最後で異常な count 値を返します。
== ケースから count が返された後、関数を完全に取り消したいのですが、最初の count が返された後に呼び出し元の関数の値を再帰で変更したくありません。