日野弥生:勉強しよう
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