n2
が のサブツリーであるかどうかを確認するために、この関数を作成しましn1
た。再帰を使用していますが、2 つのツリーを使用してテストしたところ、間違った答えが返されました (期待されtrue
た が、実際には が返されましたfalse
)。
私はしばらく苦労しましたが、何が悪いのかまだ言えません。
private Boolean isSubTree(node n1, node n2){
if(n1 == null)
return false;
if(n2 == null)
return true;
if(n1.data == n2.data){
return isSubTree(n1.left,n2.left) && isSubTree(n2.right,n2.right);
}
else
return isSubTree(n1.left, n2) || isSubTree(n1.right, n2);
}