现有一棵二叉树,对它进行遍历
代码
public class TestBianryTree {
// 树形的结构类
static class TreeNode{
public char val;
public TreeNode left;
public TreeNode right;
public TreeNode(char val){
this.val = val;
}
}
// 得到一个二叉树
public TreeNode creatTree(){
TreeNode A = new TreeNode('A');
TreeNode B = new TreeNode('B');
TreeNode C = new TreeNode('C');
TreeNode D = new TreeNode('D');
TreeNode E = new TreeNode('E');
TreeNode F = new TreeNode('F');
TreeNode G = new TreeNode('G');
// 进行构造二叉树
A.left = B;
A.right = C;
B.left = D;
B.right = E;
C.left = F;
C.right = G;
return A;
}
// 先序遍历:根——>左——>右
public void preOrder(TreeNode root){
if(root == null){
return;
}
System.out.print(root.val+" ");
preOrder(root.left);
preOrder(root.right);
}
// 中序遍历:左——>根——>右
void inOrder(TreeNode root){
if(root == null){
return;
}
inOrder(root.left);
System.out.print(root.val+" ");
inOrder(root.right);
}
// 后序遍历:左——>右——>根
void postOrde(TreeNode root){
if(root == null){
return ;
}
postOrde(root.left);
postOrde(root.right);
System.out.print(root.val+" ");
}
public static void main(String[] args) {
TestBianryTree testBianryTree = new TestBianryTree();
TreeNode treeNode = testBianryTree.creatTree();
testBianryTree.preOrder(treeNode);// A B D E C F G
// testBianryTree.inOrder(treeNode);// D B E A F C G
// testBianryTree.postOrde(treeNode);// D E B F G C A
}
}