請考慮一棵二叉樹上所有的葉子,這些葉子的值按從左到右的順序排列形成乙個 葉值序列 。
舉個例子,如上圖所示,給定一棵葉值序列為 (6, 7, 4, 9, 8) 的樹。
如果有兩棵二叉樹的葉值序列是相同,那麼我們就認為它們是 葉相似 的。
如果給定的兩個頭結點分別為 root1 和 root2 的樹是葉相似的,則返回 true;否則返回 false 。
輸入: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]
輸出:true
思路:要找出樹的葉值序列,我們可以使用深度優先搜尋。如果結點是葉子,那麼 dfs函式會寫入結點的值,然後遞迴地探索每個子結點。這可以保證按從左到右的順序訪問每片葉子,因為在右孩子結點之前完全探索了左孩子結點。
class solution
public void dfs(treenode node, list leafvalues)
}}
872 葉子相似的樹
請考慮一顆二叉樹上所有的葉子,這些葉子的值按從左到右的順序排列形成乙個 葉值序列 舉個例子,如上圖所示,給定一顆葉值序列為 6,7,4,9,8 的樹。如果有兩顆二叉樹的葉值序列是相同,那麼我們就認為它們是 葉相似 的。如果給定的兩個頭結點分別為 root1 和 root2 的樹是葉相似的,則返回 t...
872 葉子相似的樹
請考慮一顆二叉樹上所有的葉子,這些葉子的值按從左到右的順序排列形成乙個 葉值序列 舉個例子,如上圖所示,給定一顆葉值序列為 6,7,4,9,8 的樹。如果有兩顆二叉樹的葉值序列是相同,那麼我們就認為它們是 葉相似 的。如果給定的兩個頭結點分別為 root1 和 root2 的樹是葉相似的,則返回 t...
Leetcode 872 葉子相似的樹
請考慮一顆二叉樹上所有的葉子,這些葉子的值按從左到右的順序排列形成乙個 葉值序列 舉個例子,如上圖所示,給定一顆葉值序列為 6,7,4,9,8 的樹。如果有兩顆二叉樹的葉值序列是相同,那麼我們就認為它們是 葉相似 的。如果給定的兩個頭結點分別為root1和root2的樹是葉相似的,則返回true 否...