輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。
假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。
例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。
前序遍歷:根節點----左子樹----右子數
中序遍歷:左子樹----根節點----右子樹
根節點:前序遍歷的第乙個數
在中序遍歷中找到根節點的值,假設該位置為i
那麼中序遍歷中,i以前的就是左子樹,i之後的就是右子樹
/**
* definition for binary tree
* struct treenode
* };
*/class solution
//左子樹
vectorlpre(pre.begin() + 1,pre.begin() + i + 1);
vectorlvin(vin.begin(),vin.begin() + i);
root->left = reconstructbinarytree(lpre,lvin);
//右子樹
vectorrpre(pre.begin() + i + 1,pre.end());
vectorrvin(vin.begin() + i + 1,vin.end());
root->right = reconstructbinarytree(rpre,rvin);
return root;
}};
劍指offer 3 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。思路 根據前序序列第乙個結點確定根結點 根據根結點在中序序列中的位置分割出左右兩個子串行 對左子樹和右子樹分別遞迴使用同樣的方法繼續...
劍指offer專題 3重建二叉樹
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 熱度指數 927385 本題知識點 樹 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。c...
4 重建二叉樹(劍指offer)
4.重建二叉樹 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。1 思路 通常樹有如下幾種遍歷方式 前序遍歷 先訪問根結點,再訪問左子結點,最後訪問右子結點。root一般在最前 中...