二叉树的遍历,主要有先序中序和后序遍历,三个的递归实现都比较简单,而非递归实现略复杂。
先遍历之前,我们先定义一个节点
public class TreeNode {
private int data;
private TreeNode left;
private TreeNode right;
//get set方法省略
}
递归实现
- 先序遍历
public void preOrder(TreeNode root){
if(root!=null){
System.out.println(root.getData());
preOrder(root.getLeft());
preOrder(root.getRight());
}
}
- 中序遍历
public void inOrder(TreeNode root){
if(root!=null){
inOrder(root.getLeft());
System.out.println(root.getData());
inOrder(root.getRight());
}
}
- 后序遍历
public void postOrder(TreeNode root){
if(root!=null){
postOrder(root.getLeft());
postOrder(root.getRight());
System.out.println(root.getData());
}
}
非递归实现
- 先序遍历
public void preOrde