二叉搜索樹(shù)的后序遍歷

我好久沒(méi)更新了 原因是我登不上賬號(hào)了..

題目:

輸入一個(gè)整數(shù)數(shù)組,判斷該數(shù)組是不是某二叉搜索樹(shù)的后序遍歷的結(jié)果愈捅。如果是則返回true,否則返回false。假設(shè)輸入的數(shù)組的任意兩個(gè)數(shù)字都互不相同叠殷。

例子:

輸入: [4,8,6,12,16,14,10]
輸出: true

我其實(shí)對(duì)后序遍歷的規(guī)律已經(jīng)不記得了 所以看了一下題解 大佬們總結(jié)的好到位:

二叉搜索樹(shù)的后序遍歷判斷:
1改鲫、首先明白二叉搜索樹(shù)的特點(diǎn),左節(jié)點(diǎn)小于根林束,右節(jié)點(diǎn)大于根像棘,左右子樹(shù)也同樣是二叉搜索樹(shù)
2、根據(jù)二叉搜索樹(shù)的特點(diǎn)壶冒,我們發(fā)現(xiàn)需要遞歸的判斷缕题,根節(jié)點(diǎn)肯定在數(shù)組的末尾
3、找出比根節(jié)點(diǎn)小的就是左子樹(shù)胖腾,找到比根節(jié)點(diǎn)大的就是右子樹(shù)
4烟零、如果左右子樹(shù)中有不滿足的條件的元素則返回或者結(jié)束判斷
5、直到所有元素都判斷完則滿足二叉搜索樹(shù)的特點(diǎn)咸作,或者中途返回

根據(jù)大佬們總結(jié)的規(guī)律 我用JS實(shí)現(xiàn)了出來(lái)

function VerifySquenceOfBST(sequence)
{
    // write code here
   if(sequence.length === 0) {
        return false
    }
    if(sequence.length === 1) {
        return true
    }
    var root = sequence[sequence.length - 1]
    var i = 0
    //找到第一個(gè)大于根節(jié)點(diǎn)的節(jié)點(diǎn) 記錄好位置
    while(sequence[i] < root) {
        i++
    }
    //將原數(shù)組拆分成左子樹(shù)和右子樹(shù)
    const leftarr = sequence.slice(0, i)
    const rightarr = sequence.slice(i, sequence.length - 1)
    //遍歷右子樹(shù) 如果有小于root的 則說(shuō)明不符合后序遍歷的規(guī)律
    for(let a = 0; a <= rightarr.length - 1; a++) {
        if(rightarr[a] < root) {
            return false
        }
    }
    // 將左子樹(shù)和右子樹(shù)放入該函數(shù)去查看是否符合后序遍歷規(guī)律  &結(jié)果即是最后的結(jié)果
    return (leftarr.length === 0 ? true : VerifySquenceOfBST(leftarr)) && (rightarr.length === 0 ? true : VerifySquenceOfBST(rightarr))
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锨阿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子记罚,更是在濱河造成了極大的恐慌墅诡,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桐智,死亡現(xiàn)場(chǎng)離奇詭異末早,居然都是意外死亡烟馅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)然磷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)郑趁,“玉大人,你說(shuō)我怎么就攤上這事姿搜」讶螅” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵痪欲,是天一觀的道長(zhǎng)悦穿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)业踢,這世上最難降的妖魔是什么栗柒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮知举,結(jié)果婚禮上瞬沦,老公的妹妹穿的比我還像新娘。我一直安慰自己雇锡,他們只是感情好逛钻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锰提,像睡著了一般曙痘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上立肘,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天边坤,我揣著相機(jī)與錄音,去河邊找鬼谅年。 笑死茧痒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的融蹂。 我是一名探鬼主播旺订,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼超燃!你這毒婦竟也來(lái)了区拳?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤意乓,失蹤者是張志新(化名)和其女友劉穎劳闹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體洽瞬,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡本涕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伙窃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菩颖。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖为障,靈堂內(nèi)的尸體忽然破棺而出晦闰,到底是詐尸還是另有隱情,我是刑警寧澤鳍怨,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布呻右,位于F島的核電站,受9級(jí)特大地震影響鞋喇,放射性物質(zhì)發(fā)生泄漏声滥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一侦香、第九天 我趴在偏房一處隱蔽的房頂上張望落塑。 院中可真熱鬧,春花似錦罐韩、人聲如沸憾赁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)龙考。三九已至,卻和暖如春矾睦,著一層夾襖步出監(jiān)牢的瞬間晦款,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工顷锰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柬赐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓官紫,卻偏偏與公主長(zhǎng)得像肛宋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子束世,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350