LeetCode | 0669. 修剪二叉搜索樹【Python】

問題

力扣

給你二叉搜索樹的根節(jié)點(diǎn) root 扣墩,同時給定最小邊界low 和最大邊界 high嗽上。通過修剪二叉搜索樹辜王,使得所有節(jié)點(diǎn)的值在[low, high]中级乐。修剪樹不應(yīng)該改變保留在樹中的元素的相對結(jié)構(gòu)(即,如果沒有被移除尤蛮,原有的父代子代關(guān)系都應(yīng)當(dāng)保留)媳友。 可以證明,存在唯一的答案产捞。

所以結(jié)果應(yīng)當(dāng)返回修剪好的二叉搜索樹的新的根節(jié)點(diǎn)庆锦。注意,根節(jié)點(diǎn)可能會根據(jù)給定的邊界發(fā)生改變轧葛。

示例 1:

image
輸入:root = [1,0,2], low = 1, high = 2
輸出:[1,null,2]

示例 2:

image
輸入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3
輸出:[3,2,null,1]

示例 3:

輸入:root = [1], low = 1, high = 2
輸出:[1]

示例 4:

輸入:root = [1,null,2], low = 1, high = 3
輸出:[1,null,2]

示例 5:

輸入:root = [1,null,2], low = 2, high = 4
輸出:[2]

提示:

  • 樹中節(jié)點(diǎn)數(shù)在范圍 [1, 104] 內(nèi)
  • 0 <= Node.val <= 104
  • 樹中每個節(jié)點(diǎn)的值都是唯一的
  • 題目數(shù)據(jù)保證輸入是一棵有效的二叉搜索樹
  • 0 <= low <= high <= 104

思路

遞歸

只需考慮根節(jié)點(diǎn)需要做什么,其他的交給遞歸艇搀。

代碼

Python3

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def trimBST(self, root: TreeNode, low: int, high: int) -> TreeNode:
        if not root:
            return
        # 只需考慮根節(jié)點(diǎn)需要做什么尿扯,其他的交給遞歸
        # 左邊的全部小于low,所以都剪枝
        if root.val < low:
            root = root.right
            root = self.trimBST(root, low, high)
        # 右邊的全部大于high焰雕,所以都剪枝
        elif root.val > high:
            root = root.left
            root = self.trimBST(root, low, high)
        else:
            root.left = self.trimBST(root.left, low, high)
            root.right = self.trimBST(root.right, low, high)
        return root

鏈接

GitHub

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衷笋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子矩屁,更是在濱河造成了極大的恐慌辟宗,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吝秕,死亡現(xiàn)場離奇詭異泊脐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)烁峭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門容客,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秕铛,“玉大人,你說我怎么就攤上這事缩挑〉剑” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵供置,是天一觀的道長谨湘。 經(jīng)常有香客問我,道長芥丧,這世上最難降的妖魔是什么紧阔? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮娄柳,結(jié)果婚禮上寓辱,老公的妹妹穿的比我還像新娘。我一直安慰自己赤拒,他們只是感情好秫筏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挎挖,像睡著了一般这敬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蕉朵,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天崔涂,我揣著相機(jī)與錄音,去河邊找鬼始衅。 笑死冷蚂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汛闸。 我是一名探鬼主播蝙茶,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诸老!你這毒婦竟也來了隆夯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤别伏,失蹤者是張志新(化名)和其女友劉穎蹄衷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厘肮,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡愧口,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轴脐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片调卑。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡抡砂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出恬涧,到底是詐尸還是另有隱情注益,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布溯捆,位于F島的核電站丑搔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏提揍。R本人自食惡果不足惜啤月,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劳跃。 院中可真熱鬧谎仲,春花似錦、人聲如沸刨仑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杉武。三九已至辙诞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轻抱,已是汗流浹背飞涂。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祈搜,地道東北人较店。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像容燕,于是被迫代替她去往敵國和親泽西。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

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