一、定义
二叉树可以通过三种方式遍历树的节点,分别是前序、中序和后序。
前序:根节点->左节点->右节点
中序:左节点->根节点->右节点
后序:左节点->右节点->根节点
总结,根据根节点的输出位置理解前序、中序和后续。
二、代码
public Hero preSearch(int no) {
if(this.no == no) {
return this;
}
Hero hero = null;//必须写在该处,防止值被覆盖
if(this.left != null) {
hero = this.left.preSearch(no);
}
if(hero != null) {//左边找到后,直接返回。
return hero;
}
if(this.right != null) {
hero = this.right.preSearch(no);
}
return hero;
}
public Hero infixSearch(int no) {
Hero hero = null;
if(this.left != null) {
hero = this.left.infixSearch(no);
}
if (hero != null) {
return hero;
}
if(this.no == no) {
return this;
}
if(this.right != null) {
hero = this.right.infixSearch(no);
}
return hero;
}
public Hero postSearch(int no) {
Hero hero = null;
if(this.left != null) {
hero = this.left.postSearch(no);
}
if(hero != null) {
return hero;
}
if(this.right != null) {
hero = this.right.postSearch(no);
}
System.out.println("后序==>"+this);
if(this.no == no ) {
return this;
}
return hero;
}
|