Tree | 617. Merge Two Binary Trees

题目:合并二叉树

方法1:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) 
    {
        if(!t1 && !t2)
            return nullptr;
        if(!t1 && t2)
            return t2;
        if(t1 && !t2)
            return t1;
        DFS(t1, t2);
        return t1;
    }
    
    void DFS(TreeNode *&t1, TreeNode *&t2)
    {
        if(t1 && t2)
            t1->val += t2->val;
        if(!t1 && t2)
        {
            t1 = t2;
            return;           
        }
        if(t1 && !t2)
            return;
        if(!t1 && !t2)
            return;
        DFS(t1->left, t2->left);
        DFS(t1->right, t2->right);
    }
};

猜你喜欢

转载自blog.csdn.net/isunbin/article/details/82388777
今日推荐