/**
* 前序遍历结果创建二叉树
* @param data
*/
public void creatBinaryTreePre( ArrayList<String> data ){
creatBinaryTree(data.size(),data);
}
private TreeNode creatBinaryTree(int size, ArrayList<String> data) {
if(data.size()==0){
return null;
}
String d = data.get(0);
int index = size - data.size();
TreeNode node;
if(d.equals("#")){
node=null;
data.remove(0);
return node;
}
node = new TreeNode(index,d);
if(index==0){
root=node;
}
data.remove(0);
node.leftChild = creatBinaryTree(++index, data);
node.rightChild = creatBinaryTree(++index, data);
return node;
}
//测试
ArrayList<String> data = new ArrayList<>();
String [] dataArray = new String[]{"A","B","D","#","#","E","#","#","C","#","F","#"};
for(String array:dataArray){
data.add(array);
}
binaryTree.creatBinaryTreePre(data);
binaryTree.preOrder(binaryTree.root);
创建二叉树(利用前序遍历结果)
猜你喜欢
转载自blog.csdn.net/qq_40068214/article/details/88925151
今日推荐
周排行