617. Merge Two Binary Trees
仅供自己学习
思路:
同样DFS递归,如果root1或者root2为NULL,就返回另一个root,否则就将root1->val和root2->val的值相加赋值给root1->val上,
再将root1->left和root2->left作为参数递归调用函数,返回的root1赋值给root1->left。对于root1->right也是想同的。
代码:
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode() : val(0), left(nullptr), right(nullptr) {} 8 * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} 9 * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} 10 * }; 11 */ 12 class Solution { 13 public: 14 TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) { 15 if(root1==NULL) return root2; 16 if(root2==NULL) return root1; 17 root1->val += root2->val; 18 root1->left=mergeTrees(root1->left,root2->left); 19 root1->right=mergeTrees(root1->right,root2->right); 20 return root1; 21 22 } 23 };

浙公网安备 33010602011771号