根據一棵樹的中序遍歷與後序遍歷構造二叉樹。
注意:你可以假設樹中沒有重複的元素。
例如,給出
中序遍歷 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...