题目 :面试题0409 二叉搜索树序列
题目分析:
根节点可以确定数组首个元素,然后递归求解左子树,右子树,确定由这两个子树确定的数组。
需要注意的是, 不是两个数组整体组合,而是数组内的元素互相组合(第一次就错了),得到所有的组合,然后添加到结果中。
set<vector<int>> res;
void backTrace(vector<int> &vc, vector<int> & left, vector<int> & right, int ll, int rl)
{
if(ll==left.size() && rl ==right.size()) {
cout << res.size() << " " << vc.size() << endl;
res.insert(vc);
return;
}
if(ll<left.size())
{
vc.push_back(left[ll]);
backTrace(vc,left,right,ll+1,rl);
vc.pop_back();
}
if(rl<right.size())
{
vc.push_back(right[rl]