題目:
題目鏈接: https://leetcode-cn.com/problems/merge-two-binary-trees/
解題思路:
DFS,遞歸遍歷同結構順序下的子樹
代碼實現:
# 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:
def merge_help(t1, t2):
if not t1:
t1 = t2
return
elif not t2:
return
t1.val += t2.val
if not t1.left:
t1.left = t2.left
elif t2.left:
merge_help(t1.left, t2.left)
if not t1.right:
t1.right = t2.right
elif t2.right:
merge_help(t1.right, t2.right)
if not t1:
return t2
elif not t2:
return t1
merge_help(t1, t2)
return t1