劍指offer 3 重建二叉樹

2021-09-25 22:56:31 字數 824 閱讀 2341

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。

假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。

例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

前序遍歷:根節點----左子樹----右子數

中序遍歷:左子樹----根節點----右子樹

根節點:前序遍歷的第乙個數

在中序遍歷中找到根節點的值,假設該位置為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一般在最前 中...