老師在講這個根據前序,中序的結果重建二叉樹的時候,事實上是給出了流程圖的,但遞回的方法更簡單:

然后看看left和right的構造就行了:

那么代碼是不是也很簡單呢:
struct node *rebuild(int *Preorder, int *Inorder, int StartPre, int EndPre, int StartMid, int EndMid)
{
struct node *root;
int distance;
if (StartPre > EndPre || StartMid > EndMid) {
return NULL;
}
for (distance = 0; distance < EndMid; distance++) {
if (Inorder[StartMid + distance] == Preorder[StartPre]) {
break;
}
}
root = (struct node *)malloc(sizeof(struct node));
root->val = Preoder[StartPre];
root->left = rebuild(Preorder, Inorder, StartPre + 1, StartPre + distance, StartMid, distance - 1);
root->right = rebuild(Preorder, Inorder, StartPre + distance + 1, EndPre, distance + 1, EndMid);
return root;
}
還有不到一個半月就要軟考了,三個月前我報了個軟考培訓班,身邊的同事朋友們都笑我,覺得這個沒有意義很low逼,我并不這么認為,飽漢不知餓漢饑,作為一個不會編程的手藝人,任何培訓都是一個梳理知識體系的機會,此外,我并非科班,又是個大專,大家認為理所當然的東西可能在我這里就是個空白,所以我并不認為這沒有意義,我必須抓住一切機會,抓住任何渠道,不斷學習,
此外,在這個高度內卷的時代,沒有學歷,退休以后是拿不到國家承諾的退休金的,證書多拿一個是一個,雖大勢上于事無補,多一分錢是一分錢吧,
在這個培訓中,我覺得關系代數這個比較有趣,我之前沒接觸過這個領域,這也算彌補了我的一個知識空白,此外就是資料結構了,本文就是其中一例,
浙江溫州皮鞋濕,下雨進水不會胖,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/136344.html
標籤:其他
上一篇:[記錄五]Vue+node+koa2+mysql+nginx+redis,全堆疊開發小程式和管理員管理系統專案——使用swagger自動生成介面檔案
