付費限定

圖論應用題: 判定是否為葉子相似樹? Leaf-similar Trees_Leetcode #872_精選75題

閱讀時間約 8 分鐘

題目敘述

題目會給定兩顆二元樹的根結點,要求我們判斷這兩顆二元樹是否為 葉子相似樹?

葉子相似樹的定義
兩顆二元樹,從左到右看的葉子結點的序列完全相同。

例如下圖中的這兩顆二元樹,從左到右看的葉子結點的序列 = [6, 7, 4, 9, 8] 完全相同。

raw-image

題目的原文敘述


測試範例

Example 1:

raw-image
Input: root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
Output: true

從左到右看的葉子結點的序列 = [6, 7, 4, 9, 8] 完全相同。

Example 2:

raw-image
Input: root1 = [1,2,3], root2 = [1,3,2]
Output: false

第一顆樹,從左到右看的葉子結點的序列 = [2, 3]
第二顆樹,從左到右看的葉子結點的序列 = [3, 2]
不同,返回False

約束條件

Constraints:

  • The number of nodes in each tree will be in the range [1, 200].

一顆二元樹的結點總數目介於1~200之間。

  • Both of the given trees will have values in the range [0, 200].

節點值都會介於0~200之間。


演算法

這題的破題關鍵在於「葉子結點」,而且題目又給了葉子相似樹的定義

葉子相似樹的定義
兩顆二元樹,從左到右看的葉子結點的序列完全相同。

那麼,我們只要順著題目的規定,拜訪整顆樹,依照從左到右的順序,列出每個葉子結點的值,並且比較是否完全相同即可。


以行動支持創作者!付費即可解鎖
本篇內容共 3136 字、3 則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
avatar-img
90會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
題目敘述 題目會給定一個二元樹的樹根結點Root node,要求我們計算這顆二元樹的最大深度是多少? 二元樹的深度的定義: 從根結點到葉子結點的最大路徑長度。 題目的原文敘述 約束條件 Constraints: The number of nodes in the tree is
題目敘述 題目會給我們一個輸入陣列arr,起始點固定在索引為0的位置, 終點固定在索引為n-1的位置。 假設當下所在的索引位置為i,那麼每次移動的時候,可以跳到i-1,i+1,或者其他和我有相同元素值的位置arr[j], where arr[j] = arr[i]。 例如: 假設當下在i=3
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以左右位移的固定長度。 例如,假設 nums[i] = 3,那麼下一步可以移動到nums[i-3] 或 nums[i+3]這兩個格子點。 題目​會給定一個起始點start索引位置,請問我們能不能走到內部數值為0的格子點?
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以跳躍的最大長度。 題目保證始從最左邊的格子點出發開始跳,一定可以成功抵達終點,請問最少跳躍次數是說少? 題目的原文敘述 測試範例 Example 1: Input: nums = [2,3,1,1,4] Outp
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以跳躍的最大長度。 一開始從最左邊的格子點出發開始跳,請問可以成功抵達終點,也就是最右邊的格子點嗎? 如果可以,返回 True。 如果不行,返回False。 題目的原文敘述 測試範例 Example 1: In
題目敘述 題目會給我們一個房間陣列rooms,每個房間裡面擁有數量不等,可以打開其他房間的鑰匙。 每一道房間門預設都是鎖住的,只有0號房間的門一開始是打開的。 請問,從0號房間開始拿鑰匙,最終能不能打開所有房間的門? 題目的原文敘述 測試範例
題目敘述 題目會給定一個二元樹的樹根結點Root node,要求我們計算這顆二元樹的最大深度是多少? 二元樹的深度的定義: 從根結點到葉子結點的最大路徑長度。 題目的原文敘述 約束條件 Constraints: The number of nodes in the tree is
題目敘述 題目會給我們一個輸入陣列arr,起始點固定在索引為0的位置, 終點固定在索引為n-1的位置。 假設當下所在的索引位置為i,那麼每次移動的時候,可以跳到i-1,i+1,或者其他和我有相同元素值的位置arr[j], where arr[j] = arr[i]。 例如: 假設當下在i=3
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以左右位移的固定長度。 例如,假設 nums[i] = 3,那麼下一步可以移動到nums[i-3] 或 nums[i+3]這兩個格子點。 題目​會給定一個起始點start索引位置,請問我們能不能走到內部數值為0的格子點?
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以跳躍的最大長度。 題目保證始從最左邊的格子點出發開始跳,一定可以成功抵達終點,請問最少跳躍次數是說少? 題目的原文敘述 測試範例 Example 1: Input: nums = [2,3,1,1,4] Outp
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以跳躍的最大長度。 一開始從最左邊的格子點出發開始跳,請問可以成功抵達終點,也就是最右邊的格子點嗎? 如果可以,返回 True。 如果不行,返回False。 題目的原文敘述 測試範例 Example 1: In
題目敘述 題目會給我們一個房間陣列rooms,每個房間裡面擁有數量不等,可以打開其他房間的鑰匙。 每一道房間門預設都是鎖住的,只有0號房間的門一開始是打開的。 請問,從0號房間開始拿鑰匙,最終能不能打開所有房間的門? 題目的原文敘述 測試範例
你可能也想看
Google News 追蹤
Thumbnail
公園一角,發現這個特別直挺的老樹,像吃力伸長了手掌,卻只有四隻手指 綠黃的樹葉在秋天在天空下像是一種極諧調的點綴。
Thumbnail
可能包含敏感內容
大樹
樹是樹,松是松,且莫學人打江山,焦土一片。 花是花,草是草,姑且瀟遙立山徑,莫喚我名。 2012除夕郊遊小作
Thumbnail
「A是B/B在A」主題為讓小朋友了解許多事情與物品像是一串一串的連結,讓孩子們能理解一樣物品背後會有很多連結。 認識柑橘類水果,哪個是柳丁?哪個是
Thumbnail
公園一角,發現這個特別直挺的老樹,像吃力伸長了手掌,卻只有四隻手指 綠黃的樹葉在秋天在天空下像是一種極諧調的點綴。
Thumbnail
可能包含敏感內容
大樹
樹是樹,松是松,且莫學人打江山,焦土一片。 花是花,草是草,姑且瀟遙立山徑,莫喚我名。 2012除夕郊遊小作
Thumbnail
「A是B/B在A」主題為讓小朋友了解許多事情與物品像是一串一串的連結,讓孩子們能理解一樣物品背後會有很多連結。 認識柑橘類水果,哪個是柳丁?哪個是