国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

開始學(xué)算法(刷算法題)過程記錄 6

2022-05-09 15:30 作者:學(xué)途壓力大  | 我要投稿

題目描述:給定節(jié)點數(shù)為 n 的二叉樹的前序遍歷和中序遍歷結(jié)果,請重建出該二叉樹并返回它的頭結(jié)點。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建出如下圖所示。

題目關(guān)鍵:前序遍歷是指遍歷順序為根左右,第一個數(shù)肯定是根。中序遍歷是指遍歷順序為左根右,中序遍歷根一定在中間。在數(shù)據(jù)結(jié)構(gòu)課程中,給出前序和中序,讓你寫出后序遍歷是一道常見的題目,可以很容易的寫出來。但落實到算法上還需要對遞歸有一定的理解。

題目思路:

如圖所示,一開始我們有前序遍歷的數(shù)組和后序遍歷的數(shù)組。第一步,拿前序第一個生成一個節(jié)點作為根節(jié)點;第二步,根據(jù)根節(jié)點分割中序遍歷數(shù)組;第三步,分割前序遍歷數(shù)組,把前序遍歷數(shù)組劃分出左右子樹;

接著遞歸執(zhí)行這些步驟,邊界條件為左右子樹為空或者是葉子結(jié)點??梢栽O(shè)置被分割的先序數(shù)組為空則返回null。為方便理解再演示一次

分割后左子樹的前序遍歷和中序遍歷再次調(diào)用該方法,邏輯同上。2為根節(jié)點,以2為界把中序遍歷分割為左右子樹,左右子樹再次調(diào)用該方法,直到分割成下圖所示

再以7為界分割出來的左右子樹都是空數(shù)組[]??諗?shù)組作為參數(shù)再次調(diào)用將碰到邊界條件pre[0]==undefined,返回null。

算法實現(xiàn):

slice(start,end)返回數(shù)組中被選中的元素。?start?參數(shù)開始的元素,并在給定的?end?參數(shù)處結(jié)束,但不包括。不會改變原始數(shù)組。


開始學(xué)算法(刷算法題)過程記錄 6的評論 (共 條)

分享到微博請遵守國家法律
闵行区| 塔河县| 博兴县| 玉树县| 潢川县| 长沙县| 鹤山市| 广平县| 鹰潭市| 龙岩市| 会理县| 闻喜县| 勐海县| 额济纳旗| 龙陵县| 岚皋县| 万山特区| 措勤县| 陆川县| 长顺县| 南丰县| 筠连县| 谢通门县| 宣汉县| 青海省| 浑源县| 泰宁县| 甘德县| 西乡县| 高青县| 宽城| 乐昌市| 深州市| 平武县| 静乐县| 康保县| 大足县| 晋州市| 辉县市| 苏尼特右旗| 马边|