题解 | #合并二叉树#

合并二叉树

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

/**
 * struct TreeNode {
 *    int val;
 *    struct TreeNode *left;
 *    struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param t1 TreeNode类 
     * @param t2 TreeNode类 
     * @return TreeNode类
     */
    //递归版本
    //该递归函数采用前序遍历的方式同时遍历两棵树,并且完成将root2合并到root1上
    //递归函数的返回值是最终合并的头结点
    TreeNode* process(TreeNode*root1,TreeNode*root2){
        //base case
        if(root1==NULL&&root2==NULL)
            return NULL;
        else if(root1==NULL&&root2!=NULL){//此时需要返回root2因为要把root2的头接到root1上
            return root2;
        }
        else if(root1!=NULL&&root2==NULL){//此时直接返回root1即可
            return root1;
        }
        //说明都不为空,按照题意此时需要把两个节点的值相加赋给root1
            root1->val=root1->val+root2->val;
            root1->left=process(root1->left, root2->left);
            root1->right=process(root1->right, root2->right);
            return root1;
    }
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
        // write code here
        TreeNode* head=process(t1, t2);
        return head;
    }
};
全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 Java
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
07-02 13:50
闽江学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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