最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

開(kāi)始學(xué)算法(刷算法題)過(guò)程記錄 7

2022-05-10 11:17 作者:學(xué)途壓力大  | 我要投稿

題目描述:給定一顆二叉樹(shù)和其中一個(gè)節(jié)點(diǎn),如何找出中序遍歷序列的下一個(gè)節(jié)點(diǎn)?樹(shù)中的節(jié)點(diǎn)除了有兩個(gè)分別指向左、右子節(jié)點(diǎn)的指針,還有一個(gè)指向父節(jié)點(diǎn)的指針

題目鏈接:https://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e

解題思路:找規(guī)律,分類(lèi)討論。


?

第一種情況:如果給定節(jié)點(diǎn)有右子樹(shù),按中序遍歷規(guī)律,左中右,可以得知下一個(gè)節(jié)點(diǎn)就是他的右子樹(shù)中的最左子節(jié)點(diǎn)。也就是給定節(jié)點(diǎn)是中,下一個(gè)節(jié)點(diǎn)是右,但右可能還有子樹(shù),左中右,繼續(xù)沿著子樹(shù)的左節(jié)點(diǎn)一直到最后一個(gè)為之。

也就是說(shuō):如果給定節(jié)點(diǎn)有右子樹(shù),那就從右子節(jié)點(diǎn)出發(fā)一直沿著指向左子節(jié)點(diǎn)的指針,我們就能找到給定節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)。

例如,e的下一個(gè)是i。b的下一個(gè)是h,沿著b的右子節(jié)點(diǎn)e出發(fā)一直沿著指向左節(jié)點(diǎn)的指針找到h。

第二種情況:給定節(jié)點(diǎn)沒(méi)有右子樹(shù),如果給定節(jié)點(diǎn)是左節(jié)點(diǎn),那么下一個(gè)節(jié)點(diǎn)就是父節(jié)點(diǎn),因?yàn)樽笾杏冶闅v為序,給定節(jié)點(diǎn)為左那下一個(gè)中就是給定節(jié)點(diǎn)的父節(jié)點(diǎn)。例如d節(jié)點(diǎn)下一個(gè)是b節(jié)點(diǎn)。

第三種情況:給定節(jié)點(diǎn)沒(méi)有右子樹(shù),并且它還是父節(jié)點(diǎn)的右節(jié)點(diǎn)。例如:i節(jié)點(diǎn)和g節(jié)點(diǎn)。我們可以沿著父節(jié)點(diǎn)一路向上,找到一個(gè)是父節(jié)點(diǎn)的左節(jié)點(diǎn)的節(jié)點(diǎn),例如,i一路往上找,找到b是父節(jié)點(diǎn)a的左節(jié)點(diǎn),如果有b節(jié)點(diǎn)存在,那a就是中序遍歷中 i 節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)。

找不到的話,說(shuō)明他是最后一個(gè)節(jié)點(diǎn),例如g節(jié)點(diǎn),往上找不到一個(gè)是父節(jié)點(diǎn)的左節(jié)點(diǎn)的節(jié)點(diǎn)。

接下來(lái)就是把他們用ifelse組合一下

三種情況 有右子樹(shù) 無(wú)右子樹(shù)是父左 無(wú)右子樹(shù)是父右


開(kāi)始學(xué)算法(刷算法題)過(guò)程記錄 7的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
博爱县| 卢湾区| 永定县| 郓城县| 山丹县| 理塘县| 古浪县| 玉树县| 武乡县| 简阳市| 浦东新区| 昌都县| 湘潭县| 共和县| 嘉定区| 乌拉特后旗| 怀化市| 咸丰县| 舟曲县| 娄烦县| 阿鲁科尔沁旗| 筠连县| 松潘县| 北流市| 博野县| 略阳县| 云浮市| 哈密市| 郁南县| 吉木乃县| 东方市| 阿勒泰市| 彰化县| 成都市| 海盐县| 柯坪县| 登封市| 蒲江县| 西乌珠穆沁旗| 西宁市| 新昌县|