我写了这个函数来检查是否n2
是n1
. 我使用递归,但是当我使用两棵树对其进行测试时,它向我显示了错误的答案(预期的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);
}