????????其實(shí)對(duì)于這個(gè)問題,很多人都可以說清楚迎罗,前中后對(duì)應(yīng)的其實(shí)就是獲取根節(jié)點(diǎn)的順序來定義的厢岂,然后從左往右遍歷(即使是后序遍歷也是一樣柳畔,先左后右然后是root)宛逗。
? ? ? ? 然后前序遍歷和中序遍歷都有一個(gè)模型的圖片的,這個(gè)讓我copy一下百度百科的圖片盾剩。雷激。
最后代碼實(shí)現(xiàn),建議使用遞歸蜀撑,因?yàn)楹?jiǎn)單好記挤巡。。笑cry酷麦。
//前序遍歷遞歸的方式
? ? public void pre(TreeNode root){
? ? ? ? if(null!=root){
? ? ? ? //前序就是先答應(yīng)root節(jié)點(diǎn)矿卑,然后左右遞歸
? ? ? ? ? ? System.out.print(root.getData()+"\t");
? ? ? ? ? ? pre(root.getLeft());
? ? ? ? ? ? pre(root.getRight());
? ? ? ? }
? ? }
? ? //中序遍歷采用遞歸的方式
? ? public void mid(TreeNode root){
? ? ? ? if(null!=root){
? ? ? ? ? ? mid(root.getLeft());
? ? ? ? // 中序遍歷就是左邊遞歸結(jié)束,然后直接打印沃饶,然后遞歸右邊
? ? ? ? ? ? System.out.print(root.getData()+"\t");
? ? ? ? ? ? mid(root.getRight());
? ? ? ? }
? ? }
? //后序遍歷采用遞歸的方式
? ? public void post(TreeNode root){
? ? ? ? if(root!=null){
? ? ? ? ? ? post(root.getLeft());
? ? ? ? ? ? post(root.getRight());
? ? ? ? //后序就是左遞歸之后右遞歸母廷,然后最后打印
? ? ? ? ? ? System.out.print(root.getData()+"\t");
? ? ? ? }
? ? }
速記:前中后序的遍歷就是將打印的操作放在前中后即可,it is so easy糊肤。徘意。還有記不住的?不會(huì)了吧轩褐,因?yàn)槠渑c代碼完全一樣。玖详。把介。。