Leetcode617. 合并二叉树

  • 题目要求:

image.png

  • 思路:node

    • 修改Tree1,把Tree1和Tree2节点的和直接赋给Tree1
    • 递归
    • 判断,若是t1和t2都不为空,那么把t2与t1的和赋给t1,而后递归调用当前的函数,把t1和t2的左节点做为函数的参数,再把递归调用的整个值赋给t1的左节点(见代码),右节点也是同样
    • 最后把t1或t2返回
  • 核心代码:
if t1 and t2:
    t1.val += t2.val
    t1.left = self.mergeTrees(t1.left,t2.left)
    t1.right = self.mergeTrees(t1.right,t2.right)
return t1 or t2
  • 完整代码:
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:
        if t1 and t2:
            t1.val += t2.val
            t1.left = self.mergeTrees(t1.left,t2.left)
            t1.right = self.mergeTrees(t1.right,t2.right)
        return t1 or t2
相关文章
相关标签/搜索