872. 叶子相似的树

题目链接 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))
posted @ 2024-09-12 01:16  WrRan  阅读(3)  评论(0编辑  收藏  举报