https://leetcode.com/problems/merge-two-binary-trees/
1. Use recursion:
//44 ms 21.9 MB/*** Definition for a binary tree node.* 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 NULL;if(t1 && t2){ //if both t1 and t2 existt1->val = t1->val + t2->val;t1->left = mergeTrees(t1->left, t2->left);t1->right = mergeTrees(t1->right, t2->right);} else if(t1 && !t2){ //if only current t2 is emptyreturn t1;} else if(!t1 && t2){ //if only current t1 is emptyreturn t2;}return t1;}};
Time Complexity : O(m)
Space Complexity : O(m)
m = the minimum number of nodes from the two given trees
