public boolean equals(BinaryNode<T> parent,BinaryNode<T> pattern)
{
if(parent==null&&pattern==null)
return true;
if(parent==null||pattern==null)
return false;
if(parent.getdata().equals(pattern.getdata()))
return equals(parent.left,pattern.left)&&equals(parent.right,pattern.right);
return false;
}//比较两节点是否相等
//BinaryNode<T> search(BinaryTree<T> pattern)
//先根次序遍历查找首个与pattern匹配的子树
public BinaryNode<T> search(BinaryTree<T> pattern)
{
return search(pattern.root,this.root);
}
private BinaryNode<T> search(BinaryNode<T> pattern,BinaryNode<T> parent)
{
if(parent==null)
return null;
****if(parent.equals(pattern)) //这边调用equals的时候,老师说不是这样写的,那我应该怎么写啊
return parent;****
else
{
BinaryNode<T> l = search(pattern,parent.left);
if(l!=null)
return l;
BinaryNode<T> r =search(pattern,parent.right);
if(r!=null)
return r;
}
return null;
}
equals(BinaryNode parent,BinaryNode pattern)
parent.equals(pattern)
靓仔,按照你这粘贴的来看,这就不是一个方法,问题描述写错了,还是就是这样;
如果是这样,你编译器不报错吗。
首先了解一下 equals 是怎么实现的:Object类(Java的“对象世界”的根)中实现的equals方法,就是把“特征值”设定为“对象引用”来进行判断等价性的,因此可以得知,Object类中equals方法只是简简单单地返回this引用和被判断的obj的引用的“==运算”的值。 老师不让你那么写,你这个判断是可以判断他自己是不是他自己。不能判断2个BinaryTree是不是相等。
然后就是语法问题了
if(){
};
else{} ;