题目描述
https://leetcode-cn.com/problems/merge-two-binary-trees/
思路题解
话不多说,直接dfs,每次传入当前两棵树的指针状态,相当于同时同位遍历两棵二叉树
- 当有任何一方为空时,返回不为空的那个or空
- 当均不为空时,左子树+=右子树,左子树=dfs(各自的左子树),右子树=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 dfs(t1,t2):
if t1==None:
return t2
if t2==None:
return t1
t1.val+=t2.val
t1.left=dfs(t1.left,t2.left)
t1.right=dfs(t1.right,t2.right)
return t1
return dfs(t1,t2)