llllmz

导航

617. 合并二叉树 c

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
struct TreeNode* mergeTrees(struct TreeNode* root1, struct TreeNode* root2) {
    if(!root1&&!root2) return NULL;
    struct TreeNode* root=(struct TreeNode*)malloc(sizeof(struct TreeNode));
    root->val=0;
    if(root1) root->val=root1->val;
    if(root2) root->val+=root2->val;
    if(root1&&root2){
        root->left=mergeTrees(root1->left,root2->left);
        root->right=mergeTrees(root1->right,root2->right);
    }else if(root1&&!root2){
        root->left=mergeTrees(root1->left,NULL);
        root->right=mergeTrees(root1->right,NULL);
    }else{
        root->left=mergeTrees(NULL,root2->left);
        root->right=mergeTrees(NULL,root2->right);
    }
    return root;
}

结果:

posted on 2024-03-06 13:28  神奇的萝卜丝  阅读(13)  评论(0)    收藏  举报