如果二叉树不为空,根据二叉树结点的父子结构 有三种遍历方式:前序遍历、中序遍历和后序遍历
1.前序遍历(按传统:父为大,上左下右)
采用递归:父结点——>左孩子——>右孩子
2.中序遍历(很方便:从左到右)
采用递归:左孩子——>父结点——>右孩子
3.后序遍历(现代化:孩子优先)
采用递归:左孩子——>右孩子——>父结点
示例:
二叉树
结果:
实现代码
前序遍历:
public void PreOrder(TreeNode root){
if(root == null){
return;
}
TreeNode cur = root;
if(cur != null){
System.out.print("—" + cur.val +"—");
solve(cur.left);
solve(cur.right);
}
中序遍历:
public void InOrder(TreeNode root){
if(root == null){
return;
}
TreeNode cur = root;
if(cur != null){ //左孩子、父结点、右孩子
solve(cur.left);
System.out.print("—" +cur.val + "—" );
solve(cur.right);
}
}
后序遍历:
public void solve(TreeNode root){
if(root == null){
return;
}
TreeNode cur = root;
if(cur != null){ //先左右孩子,后父亲结点
solve(cur.left);
solve(cur.right);
System.out.print("—" + cur.val +"—");
}
}