力扣每日一題:993.二叉樹的堂兄弟節(jié)點(diǎn) 深度優(yōu)先算法

993.二叉樹的堂兄弟節(jié)點(diǎn)

https://leetcode-cn.com/problems/cousins-in-binary-tree/

難度:簡單

題目:

在二叉樹中弊决,根節(jié)點(diǎn)位于深度 0 處吹害,每個(gè)深度為 k 的節(jié)點(diǎn)的子節(jié)點(diǎn)位于深度 k+1 處颤芬。

如果二叉樹的兩個(gè)節(jié)點(diǎn)深度相同,但 父節(jié)點(diǎn)不同 ,則它們是一對堂兄弟節(jié)點(diǎn)筷畦。

我們給出了具有唯一值的二叉樹的根節(jié)點(diǎn) root 继效,以及樹中兩個(gè)不同節(jié)點(diǎn)的值 x 和 y 。

只有與值 x 和 y 對應(yīng)的節(jié)點(diǎn)是堂兄弟節(jié)點(diǎn)時(shí)训措,才返回 true 伪节。否則,返回 false绩鸣。

示例:

示例 1:

輸入:root = [1,2,3,4], x = 4, y = 3
輸出:false
示例 2:

輸入:root = [1,2,3,null,4,null,5], x = 5, y = 4
輸出:true
示例 3:

輸入:root = [1,2,3,null,4], x = 2, y = 3
輸出:false

分析

這是一道標(biāo)準(zhǔn)的二叉樹遞歸搜索問題怀大,當(dāng)然本人更習(xí)慣使用DFS解題。
首先呀闻,根據(jù)題目定義好的TreeNode可以獲取到當(dāng)前節(jié)點(diǎn)的值化借,以及左子樹和右子樹。
我們初始化傳入節(jié)點(diǎn)捡多,父節(jié)點(diǎn)(root沒有父節(jié)點(diǎn)蓖康,傳自身),以及最大深度(初始為0)垒手。
遍歷過程中比較x,y的數(shù)值蒜焊,并記錄深度和父節(jié)點(diǎn),當(dāng)節(jié)點(diǎn)不存在返回即可科贬。

解題:

# 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 isCousins(self, root, x, y):
        result_x = []
        result_y = []
        def dfs(node,parent,deep):
            if not node:
                return
            nonlocal result_x, result_y
            if node.val == x:
                result_x = [parent,deep]
            elif node.val == y:
                result_y = [parent,deep]
            dfs(node.left,node,deep + 1)
            dfs(node.right,node,deep + 1)
        dfs(root,root,0)
        return result_x[0] != result_y[0] and result_x[1] == result_y[1]

歡迎關(guān)注我的公眾號: 清風(fēng)Python泳梆,帶你每日學(xué)習(xí)Python算法刷題的同時(shí),了解更多python小知識。

我的個(gè)人博客:https://qingfengpython.cn

力扣解題合集:https://github.com/BreezePython/AlgorithmMarkdown

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末优妙,一起剝皮案震驚了整個(gè)濱河市乘综,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鳞溉,老刑警劉巖瘾带,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異熟菲,居然都是意外死亡看政,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門抄罕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來允蚣,“玉大人,你說我怎么就攤上這事呆贿∪峦茫” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵做入,是天一觀的道長冒晰。 經(jīng)常有香客問我,道長竟块,這世上最難降的妖魔是什么壶运? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮浪秘,結(jié)果婚禮上蒋情,老公的妹妹穿的比我還像新娘。我一直安慰自己耸携,他們只是感情好棵癣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夺衍,像睡著了一般狈谊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沟沙,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天的畴,我揣著相機(jī)與錄音,去河邊找鬼尝胆。 笑死丧裁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的含衔。 我是一名探鬼主播煎娇,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼二庵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缓呛?” 一聲冷哼從身側(cè)響起催享,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哟绊,沒想到半個(gè)月后因妙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡票髓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年攀涵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洽沟。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡以故,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出裆操,到底是詐尸還是另有隱情怒详,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布踪区,位于F島的核電站昆烁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缎岗。R本人自食惡果不足惜静尼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望密强。 院中可真熱鬧茅郎,春花似錦蜗元、人聲如沸或渤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽薪鹦。三九已至,卻和暖如春惯豆,著一層夾襖步出監(jiān)牢的瞬間池磁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工楷兽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留地熄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓芯杀,卻偏偏與公主長得像端考,于是被迫代替她去往敵國和親雅潭。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

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