二叉树的前序遍历、中序遍历、后序遍历
二叉树分为根节点、左子节点、右子节点,如下图所示,
前序遍历的顺序是 “根左右”,即 ABC,
中序遍历的顺序是 “左根右”,即 BAC,
后续遍历的顺序是 “左右根”,即 BCA,
给定一个二叉树,求三种遍历方式的结果,以下图为例
前序遍历(根左右): A B D E F G C H K
中序遍历(左根右): D B F E G A C K H
后序遍历(左右根): D F G E B K H C A
代码实现:
//define binarytree
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int x) {
this.val = x;
}
}
public class BinaryTreeSearch {
//前序遍历
public void preSearch(TreeNode node) {
if(node != null)
{
System.out.println(node.val);
//递归执行前序遍历
preSearch(node.left);
preSearch(node.right);
}
}
//中序遍历
public void midSearch(TreeNode node) {
if(node != null)
{
//递归执行中序遍历
midSearch(node.left);
System.out.println(node.val);
//递归执行中序遍历
midSearch(node.right);
}
}
//后序遍历
public void LastSearch(TreeNode node) {
if(node != null)
{
//递归执行后序遍历
midSearch(node.left);
midSearch(node.right);
System.out.println(node.val);
}
}
}