LeetCode 105和106 重建二叉樹

2021-08-27 08:17:01 字數 1288 閱讀 9468

//ps和pe是前序遍歷的起始和終止位置,is和ie則是中序遍歷的起始和終止位置;

treenode* create(vector& preorder,vector& inorder,int ps,int pe,int is,int ie)

}//pos-is表示在中序遍歷中根節點左邊(左子樹)元素的個數;

//ie-pos表示在中序遍歷中根節點右邊(右子樹)元素的個數;

node->left = create(preorder,inorder,ps+1,ps+pos-is,is,pos-1);

node->right = create(preorder,inorder,pe-ie+pos+1,pe,pos+1,ie);

return node;}};

class solution 

//ps和pe是前序遍歷的起始和終止位置,is和ie則是中序遍歷的起始和終止位置;

treenode* create(vector& inorder,vector& postorder,int is,int ie,int ps,int pe)

}//pos-is表示在中序遍歷中根節點左邊(左子樹)元素的個數;

//ie-pos表示在中序遍歷中根節點右邊(右子樹)元素的個數;

leetcode 105 前序,中序建樹

有簡潔版的。可是懶得看。自己寫的這個算是模擬手痠過程了吧,恩。感覺碰到這樣的例子,就是涉及長度加減的,都要拿小資料測一測。class solution int mid 1 for int i ll i rr i if inorder i root val root left find l 1,l m...

LeetCode105 前序 中序構造樹

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。前序拿到根節點,在中序中找到該節點左邊的元素和右邊的元素,遞迴下去.public class offer 07 else if index inorderend 1 else return root 看了官方的遞迴解法,思...

LeetCode 105 前序和中序構建二叉樹

給定乙個二叉樹前序遍歷陣列a 124367,中序遍歷得到陣列b,421637。我們的任務是從這兩個結果中構造出原來二叉樹。根據前序遍歷的順序,可以知道陣列是先存放根,然後是左子樹,最後是右子樹。根據中序遍歷的順序,可以知道陣列是先放左子樹,然後是根,最後是右子樹。根據定義,前序遍歷陣列第乙個位置是根...