与前序、中序、后序遍历的思路一样的,只是多了一个判断而已!前序查找可以看我前中后遍历的代码二叉树遍历https://blog.csdn.net/weixin_56640241/article/details/121459472?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_56640241/article/details/121459472?spm=1001.2014.3001.5501
//前序查找
public Hero preFind(int no){
Hero res = null;
if (this.id == no){
return this;
}
if (this.left!= null){
res = this.left.preFind(no);
}
//可以减少不必要的查找时间,如果左边找到就直接返回
if (res!=null){
return res;
}
if (this.right != null){
res = this.right.preFind(no);
}
return res;
}
中序查找
//中序查找
public Hero midFind(int no){
Hero res = null;
if (this.left!= null){
res = this.left.preFind(no);
}
//可以减少不必要的查找时间,如果左边找到就直接返回
if (res!=null){
return res;
}
if (this.id == no){
return this;
}
if (this.right != null){
res = this.right.preFind(no);
}
return res;
}
后序遍历
//后序查找
public Hero postFind(int no){
Hero res = null;
if (this.left!= null){
res = this.left.preFind(no);
}
//可以减少不必要的查找时间,如果左边找到就直接返回
if (res!=null){
return res;
}
if (this.right != null){
res = this.right.preFind(no);
}
//可以减少不必要的查找时间,如果左边找到就直接返回
if (res!=null){
return res;
}
if (this.id == no){
return this;
}
return res;
}



