前往
大廳
主題

LeetCode - 0652. Find Duplicate Subtrees 解題心得

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

題目連結:


題目意譯:
給定一個二元樹的根節點,回傳所有重複的子樹。

對於每一種重複的子樹,你只需要回傳其中一個的根節點。

兩棵樹如果有著相同的結構以及相同的數值,則彼此重複。

限制:
樹中的節點數位於範圍 [1, 5000] 中。
-200 ≦ Node.val ≦ 200



範例測資:
範例 1:
輸入: root = [1,2,3,4,null,2,4,null,null,4]
輸出: [[2,4],[4]]

範例 2:
輸入: root = [2,1,1]
輸出: [[1]]

範例 3:
輸入: root = [2,2,2,3,null,3,null]
輸出: [[2,3],[3]]


解題思維:
其實就是這題的簡化版。本題不需要從資料建立樹(因為給定的已經是樹了)、沒有「需要子樹非空」的條件並且只需要找出並回傳重複的子樹之根節點(該題需要刪除修改樹的結構,最後還要回傳每一條最後剩下的路徑)。




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

創作回應

更多創作