ETH官方钱包

前往
大廳
主題

LeetCode - 0652. Find Duplicate Subtrees 解題心得

Not In My Back Yard | 2024-01-25 12:00:04 | 巴幣 0 | 人氣 71

題目連結(jié):


題目意譯:
給定一個(gè)二元樹的根節(jié)點(diǎn),回傳所有重複的子樹。

對(duì)於每一種重複的子樹,你只需要回傳其中一個(gè)的根節(jié)點(diǎn)。

兩棵樹如果有著相同的結(jié)構(gòu)以及相同的數(shù)值,則彼此重複。

限制:
樹中的節(jié)點(diǎn)數(shù)位於範(fàn)圍 [1, 5000] 中。
-200 ≦ Node.val ≦ 200



範(fàn)例測(cè)資:
範(fàn)例 1:
輸入: root = [1,2,3,4,null,2,4,null,null,4]
輸出: [[2,4],[4]]

範(fàn)例 2:
輸入: root = [2,1,1]
輸出: [[1]]

範(fàn)例 3:
輸入: root = [2,2,2,3,null,3,null]
輸出: [[2,3],[3]]


解題思維:
其實(shí)就是這題的簡(jiǎn)化版。本題不需要從資料建立樹(因?yàn)榻o定的已經(jīng)是樹了)、沒有「需要子樹非空」的條件並且只需要找出並回傳重複的子樹之根節(jié)點(diǎn)(該題需要?jiǎng)h除修改樹的結(jié)構(gòu),最後還要回傳每一條最後剩下的路徑)。




此次分享到此為止,如有任何更加簡(jiǎn)潔的想法或是有說明不清楚之地方,也煩請(qǐng)各位大大撥冗討論。

創(chuàng)作回應(yīng)

更多創(chuàng)作