题解 | #合并二叉树#

合并二叉树

https://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类
     */
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
        // 若只有一个节点,则返回另一个,两个都为空,则返回NULL
        // if(!t1) return t2;
        // else if(!t2) return t1;
        // 根左右的方式递归(前序遍历)
        // TreeNode* head = new TreeNode(t1->val + t2->val);
        // head->left = mergeTrees(t1->left, t2->left);
        // head->right = mergeTrees(t1->right, t2->right);
        // return head;

        if(!t1) return t2;  // 如果t1为空,则返回的是t2
        if(!t2) return t1;  // 如果t2为空,则返回的是t1
        // 修改了t1的数值和结构
        t1->val += t2->val;                     // 中
        t1->left = mergeTrees(t1->left, t2->left); // 左
        t1->right = mergeTrees(t1->right, t2->right);   // 右
        return t1;
    }
};

来自代码随想录~~~

全部评论

相关推荐

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

创作者周榜

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