class Solution {
public:
TreeNode* mergeTrees(TreeNode* a, TreeNode* b) {
// 这两条语句我学到了,我一开始各种分类讨论很麻烦
if (!a) return b;
if (!b) return a;
// a <-- b
a->val += b->val;
a->left = mergeTrees(a->left, b->left);
a->right = mergeTrees(a->right, b->right);
return a;
// 先中后序都可以,只要能够遍历树,处理所有节点后都能得到结果
}
};
class Solution {
public:
TreeNode* mergeTrees(TreeNode* a, TreeNode* b) {
if (!a) return b;
if (!b) return a;
TreeNode* root = new TreeNode(a->val + b->val);
root->left = mergeTrees(a->left, b->left);
root->right = mergeTrees(a->right, b->right);
return root;
}
};