Skip to content

Commit

Permalink
Added problem 617
Browse files Browse the repository at this point in the history
  • Loading branch information
YUXUANCHENG committed Jul 28, 2020
1 parent cf50ec1 commit ac8dc6d
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
26 changes: 26 additions & 0 deletions 617_merge/merge.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

class Solution {
public:
TreeNode* mergeTrees(TreeNode* & t1, TreeNode* & t2) {
if(!t1 && !t2)
return t1;
if(t1 && t2)
t1->val += t2->val;
if(!t1)
t1 = new TreeNode(t2->val);
if(!t2)
t2 = new TreeNode(t1->val);
t1->left = mergeTrees(t1->left, t2->left);
t2->right = mergeTrees(t1->right, t2->right);
return t1;
}
};
23 changes: 23 additions & 0 deletions 617_merge/recursion.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

class Solution {
public:
TreeNode * & mergeTrees(TreeNode * & t1, TreeNode * & t2) {
if (!t1)
return t2;
if (!t2)
return t1;
t1->val += t2->val;
t1->left = mergeTrees(t1->left, t2->left);
t1->right = mergeTrees(t1->right, t2->right);
return t1;
}
};

0 comments on commit ac8dc6d

Please sign in to comment.