前序遍历:先输出父节点,再遍历左子树和右子树
中序遍历:先遍历左子树,再输出父节点,再遍历右子树
后序遍历:先遍历左子树,再遍历右子树,最后输出父节点
小结:看输出父节点的顺序,就确定是前序,中序还是后序
前序遍历
// 前序遍历
public void preOrder() {
System.out.println(this);// 先输出父节点
// 递归左子树
if (this.left != null) {
this.left.preOrder();
}
// 递归右子树
if (this.right != null) {
this.right.preOrder();
}
}
中序遍历
// 中序遍历
public void infixOrder() {
// 递归左子树
if (this.left != null) {
this.left.infixOrder();
}
System.out.println(this);// 先输出父节点
// 递归右子树
if (this.right != null) {
this.right.infixOrder();
}
}
后序遍历
// 后序遍历
public void postOrder() {
// 递归左子树
if (this.left != null) {
this.left.postOrder();
}
// 递归右子树
if (this.right != null) {
this.right.postOrder();
}
System.out.println(this);// 先输出父节点
}