Leetcode 617. 合并二叉树
思路
递归法(修改了输入的树t1):先将根节点相加,再递归生成左子树和右子树。
代码
//树的定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode (int x): val(x),left(NULL), right(NULL){} //初始化支持 TreeNode(int x)这种方式,即把x赋给val,left和right赋值NULL
};
TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
if (t1 == NULL) return t2;
if (t2 == NULL) return t1;
//直接在t1上修改节点的值
t1->val += t2->val;
t1->left = mergeTrees(t1->left, t2->left);
t1->right = mergeTrees(t1->right, t2->right);
return t1;
}
总结
树的题很不熟练,要多加练习。