用递归实现二叉树的前中后序遍历
二叉树:
前序遍历结果:ABDECF
中序遍历结果:DBEAFC
后序遍历结果:DEBFCA
二叉树生成
TreeNode head = new TreeNode("A");
TreeNode n1 = new TreeNode("B");
TreeNode n2 = new TreeNode("C");
TreeNode n3 = new TreeNode("D");
TreeNode n4 = new TreeNode("E");
TreeNode n5 = new TreeNode("F");
head.left = n1;
head.right = n2;
n1.left = n3;
n1.right = n4;
n2.left = n5;
前序遍历代码
public static void preOrder(TreeNode node) {
if (node == null) {
return;
}
System.out.print(node.val+" ");
preOrder(node.left);
preOrder(node.right);
}
中序遍历代码
public static void inOrder(TreeNode node) {
if (node == null) {
return;
}
inOrder(node.left);
System.out.print(node.val+" ");
inOrder(node.right);
}
后序遍历代码
public static void postOrder(TreeNode node) {
if (node == null) {
return;
}
postOrder(node.left);
postOrder(node.right);
System.out.print(node.val+" ");
}
测试代码
TreeNode.preOrder(head);
System.out.println();
TreeNode.inOrder(head);
System.out.println();
TreeNode.postOrder(head);
运行结果
结果与预期一致