qianxu(Treenode root){//前序遍历
if(root==null)
return;
record();//把当前节点值记录下来
qianxu(root.left);
qianxu(root.right);
}
zhongxu(Treenode root){//中序遍历
if(root==null)
return;
zhongxu(root.left);
record();
zhongxu(root.right);
}
houxu(Treenode root){//后序遍历
if(root==null)
return;
houxu(root.left);
houxu(root.right);
record();
}
三种遍历算法之不同处仅在于访问根节点和遍历左、右子树的先后关系。暂且抹去和递归无关的record()语句,则三个遍历算法完全相同。由此,从递归执行过程的角度来看三种遍历顺序也是完全相同的。