首页 > 其他 > 详细

Leetcode 617 合并二叉树

时间:2020-01-09 21:13:36      阅读:68      评论:0      收藏:0      [点我收藏+]

原文链接

题目

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为?NULL 的节点将直接作为新二叉树的节点。

例子

技术分享图片

思路

从根结点出发,对根结点进行合并,再分别递归合并其左右子树。

C++程序

TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
    if(t1==nullptr && t2==nullptr) return nullptr;
    if(t1==nullptr) return t2;
    if(t2==nullptr) return t1;
    else {
        t1->val += t2->val;
        t1->left = mergeTrees(t1->left, t2->left);
        t1->right = mergeTrees(t1->right, t2->right);
        return t1;
    }
}

Leetcode 617 合并二叉树

原文:https://www.cnblogs.com/ben-future/p/leetcode-617-mergetrees.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!