【广度优先搜索/深度优先搜索-简单】617. 合并二叉树

【题目】
【广度优先搜索/深度优先搜索-简单】617. 合并二叉树_第1张图片【广度优先搜索/深度优先搜索-简单】617. 合并二叉树_第2张图片

【代码】
【思路】先序同时遍历二叉树,以merge作为合并的目标树,
所以当root1(root2)为空的时候,返回root2(root1)相应位置的节点
当root1和root2都不为空的时候,将两个节点的和相加,声明一个新节点,该节点对应的值是两个节点的相加
【广度优先搜索/深度优先搜索-简单】617. 合并二叉树_第3张图片

class Solution:
    def mergeTrees(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root1 and not root2:
            return
        if not root1:
            return root2
        if not root2:
            return root1
        merge=TreeNode(root1.val+root2.val)
        merge.left=self.mergeTrees(root1.left,root2.left)
        merge.right=self.mergeTrees(root1.right,root2.right)
        return merge

你可能感兴趣的:(刷题,深度优先,宽度优先,leetcode)