JAVA 二叉树前序中序后续 递归遍历
public class binaryTree {
private treeNode root = new treeNode();
public treeNode getRoot() {
return root;
}
public void setRoot(treeNode root) {
this.root = root;
}
//遍历
public void traverse(treeNode root){
root.Inorder();
}
}
class treeNode{
private int data;
private treeNode leftChild;
private treeNode rightChild;
public treeNode() {
}
public treeNode(int data) {
this.data = data;
this.leftChild = null;
this.rightChild = null;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public treeNode getLeftChild() {
return leftChild;
}
public void setLeftChild(treeNode leftChild) {
this.leftChild = leftChild;
}
public treeNode getRightChild() {
return rightChild;
}
public void setRightChild(treeNode rightChild) {
this.rightChild = rightChild;
}
//前序遍历 头左右
public void preorder(){
System.out.println(this.data);
if (this.leftChild!=null){
this.leftChild.preorder();
}
if (this.rightChild!=null){
this.rightChild.preorder();
}
}
//后序遍历 左右头
public void postorder(){
if (this.leftChild!=null){
this.leftChild.postorder();
}
if (this.rightChild!=null){
this.rightChild.postorder();
}
System.out.println(this.data);
}
//中序遍历 左头右
public void Inorder(){
if (this.leftChild!=null){
this.leftChild.Inorder();
}
System.out.println(this.data);
if (this.rightChild!=null) {
this.rightChild.Inorder();
}
}
}