日野弥生:勉強しよう

LeetCode 617 - 合并二叉树

发表于2025年02月28日

#树 #二叉树 #广度优先搜索 #深度优先搜索

递归解题,注意python3也有类似于C++中的?:表达式,不过是A if B else C

class Solution:
    def mergeTrees(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> Optional[TreeNode]:
        if root1 is None and root2 is None:
            return None
        root = TreeNode(0)
        if root1 and root2:
            root.val = root1.val + root2.val
        elif root1 and not root2:
            root.val = root1.val
        elif not root1 and root2:
            root.val = root2.val

        # 如果结点本身没有子树了就直接传入空
        root.left = self.mergeTrees(root1.left if root1 else None, root2.left if root2 else None)
        root.right = self.mergeTrees(root1.right if root1 else None, root2.right if root2 else None)
        return root

フラッシュタブ:LeetCode

题目链接:https://leetcode.cn/problems/merge-two-binary-trees/

上一篇

LeetCode 226 - 翻转二叉树

下一篇

LeetCode 110 - 平衡二叉树