【代码随想录day 17】 力扣 617.合并二叉树
视频讲解:https://www.bilibili.com/video/BV1m14y1Y7JK/?vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0617.%E5%90%88%E5%B9%B6%E4%BA%8C%E5%8F%89%E6%A0%91.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE
力扣题目:https://leetcode.cn/problems/merge-two-binary-trees/submissions/652089890/
对于两个二叉树的合并,主要重点在于判断终止条件
如果t1为空,返回t2
如果t2为空,返回t1.
这看上去只有两个,但对于两个都为空的情况,这两个判断条件也能处理,直接进入第一个判断条件,返回空的t2节点。
class Solution {
public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {//判断终止条件//如果t1为空,返回t2的值,如果t2为空,返回t1的值//如果都为空也可以返回t2的值,因为t2也为空if(root1 == NULL) return root2;if(root2 == NULL) return root1;//直接再t1上修改root1->val += root2->val;//递归//左root1->left=mergeTrees(root1->left,root2->left);//右root1->right = mergeTrees(root1->right,root2->right);return root1;}
};