根據前序和中序遍歷的結果構建二叉樹

2021-08-21 19:39:03 字數 662 閱讀 9605

class solution 

treenode* root=new treenode(pre[0]);

int index=0;

//前序遍歷的第乙個元素一定是根節點,在中序遍歷中找出該根節點對應的位置index,index左邊的都是左子樹,右邊的都是右子樹

for(int i=0;iif(pre[0]==vin[i])

}//以index位置為界限,將兩個陣列劃分成兩段,pre_left,pre_right和vin_left,vin_right;

vector

pre_left;

vector

pre_right;

vector

vin_left;

vector

vin_right;

int i=0;

for(i=0;i1]);

}for(i=index+1;i//遞迴的建立左子樹

root->left=reconstructbinarytree(pre_left,vin_left);

//遞迴的建立右子樹

root->right=reconstructbinarytree(pre_right,vin_right);

return root;

}};

根據前序遍歷和中序遍歷的結果重建二叉樹

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。為便於理解,重建出的二叉樹如下 python 如下 class treenode def init self,x self.v...

根據前序和中序遍歷結果重建二叉樹

前序遍歷 根節點 左子樹 右子樹 中序遍歷 左孩子 根節點 右子樹 根據前序遍歷的特性可以得知 1.前序遍歷後的第乙個節點就是這棵樹的根節點。2.根據中序遍歷找到根節點後,其左邊的節點都是根節點的左子樹,其右邊的節點都是根節點的右子樹。3.用遞迴的方式將根節點的左子樹和右子樹分別看成是一棵樹。對於遞...

根據前序遍歷,中序遍歷結果構造二叉樹

前序遍歷的特點 根節點 左子樹 右子樹 中序遍歷的特點 左子樹 根節點 右子樹 例如 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 在前序遍歷結果中可以找到 這棵樹的根 為 3 再去中序中,可以分辨出9為3的左子樹內容,15 20 7為3的右子...