872. 葉子相似的樹

WrRan發表於2024-09-12
題目連結 872. 葉子相似的樹
思路 透過DFS的方式得到樹的葉子節點序列
題解連結 官方題解
關鍵點 yeild from dfs(node.left)
時間複雜度 \(O(n_1+n_2)\)
空間複雜度 \(O(n_1+n_2)\)

程式碼實現:

class Solution:
    def leafSimilar(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> bool:
        if root1 is None or root2 is None:
            return root1 is root2
        
        def dfs(node):
            if not node.left and not node.right:
                yield node.val
            else:
                if node.left:
                    yield from dfs(node.left)
                if node.right:
                    yield from dfs(node.right)
        
        return list(dfs(root1)) == list(dfs(root2))

相關文章