关于二叉树的前序、中序、后序问题
前序遍历:
1. 访问根节点
2. 前序遍历左子树
3. 前序遍历右子树
中序遍历:
1. 中序遍历左子树
2. 访问根节点
3. 中序遍历右子树
后序遍历:
1. 后序遍历左子树
2. 后序遍历右子树
3. 访问根节点
写到这里可能还是有很多人不理解,接下来我写一点程序来帮助大家理解
public class Node{
Node left;
Node right;
char value;
}
这是一个二叉树最基本的结点类,而关于二叉树的遍历其实特别的简单
public static void postTrav(Node root){
//遍历左子树
if(root.left!=null)
postTrav(root.left);
//遍历右子树
if(root.right!=null)
postTrav(root.right);
//输出本节点
System.out.println(root.value);
}
这便是二叉树的后序遍历,看了后是不是焕然大悟,只要将其中的if语句与输出语句进行调整,就能很快的写出二叉树的前序中序和后序遍历。
在笔试或面试过程中有时会被问到已知树的前序和中序求后序这类的问题。(其实就是我前段时间笔试遇到了~才去认真看了下这些知识),下面对其进行介绍说明,最主要的思想是递归。
1. 已知前序和中序,求后序。
上面的程序中写了遍历树的方法ÿ