LeetCode #617:Merge Two Binary Trees(合并二叉树)

题目描述

本题需要运用树的递归特性求解:当 root1 和 root2 均为空时,返回空;当 root1 和 root2 有一个为空时,返回非空的那个节点;当 root1 和 root2 均不空时,返回合并后的结点。之后在分别递归左右子树。

class Solution {
public:
    TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
        
        //返回root1与root2非空结点、均空时返回空
        if(root1 == nullptr) return root2;
        if(root2 == nullptr) return root1;

        root1->val += root2->val; //合并结点
        
        root1->left = mergeTrees(root1->left, root2->left);
        root1->right = mergeTrees(root1->right, root2->right);

        return root1;
    }
};

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注