【leetcode C語言實現(xiàn)】劍指 Offer 07.重建二叉樹

題目描述

輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果走芋,請重建該二叉樹绩郎。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復的數(shù)字。

例如翁逞,給出

前序遍歷 preorder = [3,9,20,15,7]
中序遍歷 inorder = [9,3,15,20,7]
返回如下的二叉樹:



限制:

0 <= 節(jié)點個數(shù) <= 5000

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof

解題思路

前序遍歷的第一個節(jié)點即為該二叉樹的根節(jié)點肋杖,其后分別是左子樹節(jié)點和右子樹節(jié)點,但是前序遍歷無法區(qū)分左子樹和右子樹的分界挖函;中序遍歷的根節(jié)點在序列中間状植,根節(jié)點左側(cè)為左子樹節(jié)點,后側(cè)為右子樹節(jié)點,這樣結(jié)合前序遍歷和中序遍歷的根節(jié)點可以把原始序列分別劃分為左子樹和右子樹序列津畸,同樣振定,這兩段序列可以按照前面一樣的方法進行節(jié)點確認,最終能重建二叉樹肉拓。

代碼

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


struct TreeNode* buildTree(int* preorder, int preorderSize, int* inorder, int inorderSize){
    if(preorderSize == 0)  return NULL;

    int index = 0; 
    struct TreeNode* pnode=malloc(sizeof(struct TreeNode));    
    pnode->val = preorder[0];
    while(index < inorderSize)
    {
        if(inorder[index] == preorder[0])  break;
        else index++;
    }
    pnode->left = buildTree(preorder + 1, index, inorder, index);
    pnode->right = buildTree(preorder + 1 + index, preorderSize - index - 1, inorder + index + 1, preorderSize - index - 1);

    return pnode;
}

執(zhí)行結(jié)果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末后频,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暖途,更是在濱河造成了極大的恐慌卑惜,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驻售,死亡現(xiàn)場離奇詭異露久,居然都是意外死亡,警方通過查閱死者的電腦和手機欺栗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門毫痕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纸巷,你說我怎么就攤上這事镇草。” “怎么了瘤旨?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵梯啤,是天一觀的道長。 經(jīng)常有香客問我存哲,道長因宇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任祟偷,我火速辦了婚禮察滑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘修肠。我一直安慰自己贺辰,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布嵌施。 她就那樣靜靜地躺著饲化,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吗伤。 梳的紋絲不亂的頭發(fā)上吃靠,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音足淆,去河邊找鬼巢块。 笑死礁阁,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的族奢。 我是一名探鬼主播姥闭,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼越走!你這毒婦竟也來了泣栈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤弥姻,失蹤者是張志新(化名)和其女友劉穎南片,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庭敦,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡疼进,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秧廉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伞广。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疼电,靈堂內(nèi)的尸體忽然破棺而出嚼锄,到底是詐尸還是另有隱情,我是刑警寧澤蔽豺,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布区丑,位于F島的核電站,受9級特大地震影響修陡,放射性物質(zhì)發(fā)生泄漏沧侥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一魄鸦、第九天 我趴在偏房一處隱蔽的房頂上張望宴杀。 院中可真熱鬧,春花似錦拾因、人聲如沸旺罢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扁达。三九已至,卻和暖如春庭惜,著一層夾襖步出監(jiān)牢的瞬間罩驻,已是汗流浹背穗酥。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工护赊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惠遏,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓骏啰,卻偏偏與公主長得像节吮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子判耕,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354