二叉树的遍历
遍历的顺序
- 先序遍历: 中左右
- 中序遍历: 左中右
- 后序遍历: 左右中
Ps:这个是打印顺序也就是访问顺序。在遍历的时候一般都是从根节点,然后到左节点,然后右节点的。但是在访问的过程中先打印谁,后打印谁是看先序遍历( 中左右),中序遍历(左中右),后序遍历(左右中)。我们可以发现其实记忆这个顺序也右一个规律,主要是根节点先访问就是先序遍历,根节点中间访问就是中序遍历,根节点后访问就是后序遍历。
递归实现
前序遍历
public static void Preorder(Node root) {
if (root == null) {
return;
}
System.out.println(root.getElement());
Preorder(root.getLeft());
Preorder(root.getRight());
}
中序遍历
public static void MidOrder(Node root) {
if (root == null) {
return;
}
MidOrder(root.getLeft());
System.out.println(root.getElement());
MidOrder(root.getRight());
}
后序遍历
public static void PostOrder(Node root) {
if (root == null) {
return;
}
PostOrder(root.getLeft());
PostOrder(root.getRight());
System.out.println(root.getElement());
}
总结
递归实现比较容易理解。最近打算好好复习下算法的知识。