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的右子...