二叉樹的構造方法

2021-06-28 16:37:54 字數 616 閱讀 9026

做leetcode上面的題目時,遇到二叉樹的問題,想要用乙個二叉樹進行驗證,每次構造二叉樹都很麻煩,特此寫乙個建構函式。

1.用陣列構造二叉樹

void treenodeconstructor(treenode *&root, int data,int n,int& index)

int e = data[index++];

if(e == '#')else

}

主函式中呼叫為:

int main()

;//先序遍歷的序列

treenode t(1);

treenode *root=&t;

int index=0;

treenodeconstructor(root,data,11,index);

solution s;

cout<

2.自行輸入節點

void createbitree(treenode *&root)

else

}

呼叫函式:

int main()

二叉樹構造

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。public int findvalptr vectorarr,int val return i 查詢子樹的根節點 publi...

構造二叉樹

題目 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 理解從前序中可以直接找到根節點,然後從中序中找到這個根節點並...

構造二叉樹

例 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 二叉樹 3 9 20 15 7 definition for a binary tree node.struct treenode class solution treenode buildtr...