用递归实现二叉树的三种遍历

 
 
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()语句,则三个遍历算法完全相同。由此,从递归执行过程的角度来看三种遍历顺序也是完全相同的。

猜你喜欢

转载自blog.csdn.net/sofuzi/article/details/80231262