從中序與後序遍歷序列構造二叉樹 二叉樹

2021-10-16 17:05:20 字數 840 閱讀 8744

根據一棵樹的中序遍歷與後序遍歷構造二叉樹。

注意:你可以假設樹中沒有重複的元素。

例如,給出

中序遍歷 inorder = [9,3,15,20,7]

後序遍歷 postorder = [9,15,7,20,3]

得到結果:[3,9,20,null,null,15,7]

二叉樹的後序遍歷最後乙個元素是二叉樹的的根節點,然後中序遍歷根節點左邊元素是左子樹的節點,右邊是右子樹的節點。

知道這個這道題就很簡單了,用遞迴呼叫求左子樹右子樹。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

int i, m; //找到根節點m

for (i = 0; i < inorder.size(); i++)

}m = i;

vectorarr0, arr1, brr0, brr1;

if (m == 0)

else

tree->left = build(arr0, brr0);

}if (m >= inorder.size() - 1)

else

tree->right = build(arr1, brr1);

}return tree;

}treenode* buildtree(vector& inorder, vector& postorder)

return build(inorder, postorder);

}};

從中序與後序遍歷序列構造二叉樹

根據一棵樹的中序遍歷與後序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 中序遍歷 inorder 9,3,15,20,7 後序遍歷 postorder 9,15,7,20,3 返回如下的二叉樹 3 9 20 15 7因為後序遍歷的順序是 左,右,根 最後乙個節點總是根節點,而中序遍...

從中序與後序遍歷序列構造二叉樹

根據一棵樹的中序遍歷與後序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 中序遍歷 inorder 9,3,15,20,7 後序遍歷 postorder 9,15,7,20,3 返回如下的二叉樹 3 9 20 15 7 definition for a binary tree nod...

從中序與後序遍歷序列構造二叉樹

根據一棵樹的中序遍歷與後序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 中序遍歷 inorder 9,3,15,20,7 後序遍歷 postorder 9,15,7,20,3 返回如下的二叉樹 3 9 20 15 7 definition for a binary tree nod...