1. 程式人生 > >二叉樹的前序、中序、後序遍歷的相互求法(JAVA)

二叉樹的前序、中序、後序遍歷的相互求法(JAVA)

今天做前端的筆試題,第一個選擇題就是已知前序和中序,求後序,突然發現自己資料結構的基礎全忘了,所以上網查了查,自己寫了個程式:

1.已知前序和中序,求後序:

package nowcode;


public class AfterOder {
public static void main(String[] args) {
String pr="GDAFEMHZ";
String in="ADEFGHMZ";
BinaryTreeFromOrderings(in, pr, 8);
}
public static void BinaryTreeFromOrderings(String inOrder,String prOrder,int length){
if(length == 0)
return;
TreeNode node = new TreeNode(prOrder.toCharArray()[0]);
int i=0;
for(;i<length;i++){
if(inOrder.toCharArray()[i] == prOrder.toCharArray()[0]){
break;
}
}
BinaryTreeFromOrderings(inOrder,prOrder.substring(1),i);
BinaryTreeFromOrderings(inOrder.substring(i+1),prOrder.substring(i+1),length-(i+1));
System.out.print(node.val);
return;
}
}

2.