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
相關文章
相關標籤/搜索