TreeNode类
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int val){
this.val = val;
}
public TreeNode(TreeNode left, int val, TreeNode right) {
this.left = left;
this.val = val;
this.right = right;
}
@Override
public String toString() {
return String.valueOf(this.val);
}
}
采用递归方式遍历二叉树
public class TreeTraversal {
public static void main(String[] args) {
TreeNode root = new TreeNode(
new TreeNode(new TreeNode(4),2,null),
1,
new TreeNode(new TreeNode(5),3,new TreeNode(6))
);
preOrder(root);
System.out.println("-----------");
inOrder(root);
System.out.println("-----------");
postOrder(root);
}
static void preOrder(TreeNode node) {
if(node == null) {
return;
}
System.out.println(node.val);
preOrder(node.left);
preOrder(node.right);
}
static void inOrder(TreeNode node) {
if(node == null) {
return;
}
inOrder(node.left);
System.out.println(node.val);
inOrder(node.right);
}
static void postOrder(TreeNode node) {
if(node == null) {
return;
}
postOrder(node.left);
postOrder(node.right);
System.out.println(node.val);
}
}