拟人算法系列文章,以容易理解的方式描述算法,点赞收藏不迷路
合并二叉树
class Solution:
def merge_trees(self, cur1: TreeNode, cur2: TreeNode) -> TreeNode:
if cur1 is None:
return cur2
if cur2 is None:
return cur1
cur1.val += cur2.val # 中
cur1.left = self.merge_trees(cur1.left, cur2.left) # 左
cur1.right = self.merge_trees(cur1.right, cur2.right) # 右
return cur1
1)参数为root1,root2,返回值为Node,2)退出条件,如果root1为空,那么返回roo2,如果root2为空,那么返回root1,3)单层递归逻辑,好比两个人分别从两棵树的根节点开始,逐个遍历,将当前节点的值相加,以及对左右子节点进行同样的合并操作