二叉树的遍历方式分为:深度优先遍历 和 广度优先遍历。其中,深度优先遍历又分为:前、中、后序遍历;广度优先遍历主要指的是层序遍历。对于二叉树的遍历,我们最常用的就是递归的方法。今天,给大家带来深度优先遍历的递归写法:
我们可以将二叉树看作由三部分组成:根、左子树、右子树,则前、中、后序遍历的遍历顺序为:
前序遍历:根 --> 左子树前序 --> 右子树前序
中序遍历:左子树中序 --> 根 --> 右子树中序
后序遍历:左子树后序 --> 右子树后序 --> 根
- 前序遍历
public static void preOrder(Node root){
if(root == null){
return;
}
System.out.println(root.val);
preOrder(root.left);
preOrder(root.right);
}
- 中序遍历
public static void inOrder(Node root){
if(root == null){
return;
}
inOrder(root.left);
System.out.println(root.val);
inOrder(root.right);
}
- 后序遍历
public static void postOrder(Node root){
if(root == null){
return;
}
postOrder(root.left);
postOrder(root.right);
System.out.println(root.val);
}