!!!题解 | 合并二叉树 多看几遍 这里注意返回值的分支返回

合并二叉树

https://www.nowcoder.com/practice/7298353c24cc42e3bd5f0e0bd3d1d759

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 *	TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param t1 TreeNode类 
     * @param t2 TreeNode类 
     * @return TreeNode类
     */
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
        // write code here
        //有思路但写不出。主要就是将T1作为母树然后T2加入。重点是怎么让T1T2同时递归,可以让递归有两个参数,将这两棵树同时传入这个参数表
        TreeNode* node=merge(t1,t2);
        return node;
        
    }
    TreeNode* merge(TreeNode* root1,TreeNode* root2){
        if(!root1&&!root2)return nullptr;
        if(root1&&root2){
            root1->val+=root2->val;
            root1->left=merge(root1->left,root2->left);
            root1->right=merge(root1->right,root2->right);
            return root1;//注意这里必须有返回值,不然会进入的下面的代码,导致混乱
        }
        TreeNode* cur=nullptr;
        if(!root1)cur= root2;
        if(!root2)cur= root1;
        return cur;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务