本文共 699 字,大约阅读时间需要 2 分钟。
题目:合并2棵二叉树
思路:采用后序遍历的方法,分为3种情况:
1 如果t1非空并且t2非空,则t1加上t2的值,返回t1,否则直接返回t12 t1为空且t2非空,返回t23 t1和t2都为空,返回NULL
代码:
class Solution {public: TreeNode *dfs(TreeNode* t1,TreeNode* t2){ if(!t1&&!t2) return NULL; TreeNode *left = dfs((t1?t1->left:NULL),(t2?t2->left:NULL)); TreeNode *right = dfs((t1?t1->right:NULL),(t2?t2->right:NULL)); if(t1){ t1->val+=(t2?t2->val:0); t1->left = left; t1->right = right; } else return t2; return t1; } TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { t1 = dfs(t1,t2); return t1; }};
转载地址:http://sirai.baihongyu.com/