LeetCode 538. 把二叉搜索樹轉(zhuǎn)換為累加樹

題目

給出二叉搜索樹的根節(jié)點(diǎn)踪危,該樹的節(jié)點(diǎn)值各不相同朗涩,請(qǐng)你將其轉(zhuǎn)換為累加樹(Greater Sum Tree)愿待,使每個(gè)節(jié)點(diǎn) node 的新值等于原樹中大于或等于 node.val 的值之和糠惫。

例:
輸入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
輸出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]

方法:遞歸

__ init __ 函數(shù):

  • pre 表示此時(shí)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)

convertBST 函數(shù):

  • 調(diào)用 traversal 函數(shù)实撒,進(jìn)行遍歷

traversal 函數(shù):右中左遍歷二叉樹

  • 若節(jié)點(diǎn)為空姊途,則返回 None
  • 根據(jù)二叉搜索樹和累加樹的定義可知,最右測的節(jié)點(diǎn)的值為其自身值知态,而最左側(cè)節(jié)點(diǎn)的值為整棵樹所有節(jié)點(diǎn)值的和捷兰。若將該二叉搜索樹的所有節(jié)點(diǎn)值按順序放入一個(gè)數(shù)組的話,每個(gè)節(jié)點(diǎn)的新節(jié)點(diǎn)值為其后一個(gè)節(jié)點(diǎn)值加上自身的節(jié)點(diǎn)值负敏。所以此處先遍歷右側(cè)后中間最后左側(cè)
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def __init__(self):
        self.pre = TreeNode()

    def convertBST(self, root):
        self.traversal(root)
        return root
        
    def traversal(self, node):
        if not node:
            return None
        
        self.traversal(node.right)

        node.val += self.pre.val
        self.pre = node

        self.traversal(node.left)
參考

代碼相關(guān):https://programmercarl.com/0538.%E6%8A%8A%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E8%BD%AC%E6%8D%A2%E4%B8%BA%E7%B4%AF%E5%8A%A0%E6%A0%91.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贡茅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子其做,更是在濱河造成了極大的恐慌顶考,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妖泄,死亡現(xiàn)場離奇詭異驹沿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蹈胡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門渊季,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人审残,你說我怎么就攤上這事梭域。” “怎么了搅轿?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵病涨,是天一觀的道長。 經(jīng)常有香客問我璧坟,道長既穆,這世上最難降的妖魔是什么赎懦? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮幻工,結(jié)果婚禮上励两,老公的妹妹穿的比我還像新娘。我一直安慰自己囊颅,他們只是感情好当悔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著踢代,像睡著了一般盲憎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胳挎,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天饼疙,我揣著相機(jī)與錄音,去河邊找鬼慕爬。 笑死窑眯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的医窿。 我是一名探鬼主播磅甩,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼留搔!你這毒婦竟也來了更胖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤隔显,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后饵逐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體括眠,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年倍权,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掷豺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡薄声,死狀恐怖当船,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情默辨,我是刑警寧澤德频,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站缩幸,受9級(jí)特大地震影響壹置,放射性物質(zhì)發(fā)生泄漏竞思。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一钞护、第九天 我趴在偏房一處隱蔽的房頂上張望盖喷。 院中可真熱鬧,春花似錦难咕、人聲如沸课梳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暮刃。三九已至,卻和暖如春咙冗,著一層夾襖步出監(jiān)牢的瞬間沾歪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工雾消, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灾搏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓立润,卻偏偏與公主長得像狂窑,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子桑腮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容