题目要求:给定两棵二叉树,想象一下,当你将其中一棵叠加在另一棵上时,两棵二叉树的某些节点会重叠。您需要将它们合并到一个新的二叉树中。合并的规则是,如果两个节点重叠,则将它们的值加在一起作为节点合并后的新值,否则不为NULL的节点将直接作为新二叉树的节点。解决思路:遇到二叉树,首先想到的就是递归实现。为了减少空间消耗,当两棵二叉树合并为一棵时,不会创建新树。两棵树的当前节点(根节点)t1和t2一开始就给定了。如果t1和t2节点都不为空,则将t1节点的值更新为t1+t2的值,递归遍历当前节点的左子树和右子树。子树;如果任何一个节点为空,并且不是两个都为空,则返回一个非空节点;如果两个节点都为空,则返回None。直接上代码( ̄▽ ̄):#二叉树节点的定义#classTreeNode:#def__init__(self,x):#self.val=x#self.left=None#self.right=Noneclass解法:defmergeTrees(self,t1:TreeNode,t2:TreeNode)->TreeNode:如果t1!=None和t2!=None:t1.val+=t2.valt1.left=self.mergeTrees(t1.left,t2.左)t1.right=self.mergeTrees(t1.right,t2.right)elift1==Noneandt2!=None:returnt2elift1!=Noneandt2==None:returnt1else:returnNonereturnt1时空消耗:题目链接:https://leetcode-cn.com/probl...
