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