当前位置: 首页> 财经> 金融 > 网页设计与制作实践_手机模拟器_百度推广合作_百度seo推广工具

网页设计与制作实践_手机模拟器_百度推广合作_百度seo推广工具

时间:2025/7/11 7:41:38来源:https://blog.csdn.net/ZJFJhanxi/article/details/146267574 浏览次数:1次
网页设计与制作实践_手机模拟器_百度推广合作_百度seo推广工具

leetcode:617. 合并二叉树 - 力扣(LeetCode)

题目

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

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

注意:合并必须从两个数的根节点开始。 

思路

这题采用前序递归的方法,将两棵树对应的节点进行相加就可以了。

递归三部曲

(1)输入的是两棵树t1、t2的根节点,返回的是新树的根节点。

(2)如果t1=NULL,那么返回t2;如果t2=NULL,那么返回t1。

(3)将两棵树的元素加到一起,左子树相加,右子树相加。

代码如下:

class Solution
{public:/*** 合并两个二叉树* 当两个节点重叠时,将它们的值相加作为新节点的值* 如果一个节点为空,则返回另一个节点* 递归地对两个树的左子树和右子树进行合并* * @param t1 第一个二叉树的根节点* @param t2 第二个二叉树的根节点* @return 合并后的二叉树的根节点*/TreeNode *mergeTrees(TreeNode *t1,TreeNode *t2){// 如果t1为空,直接返回t2if(t1==NULL) return t2;// 如果t2为空,直接返回t1if(t2==NULL) return t1;// 将两个节点的值相加,作为新节点的值t1->val = t1->val + t2->val;// 递归合并左子树t1->left = mergeTrees(t1->left,t2->left);// 递归合并右子树t1->right = mergeTrees(t1->right,t2->right);// 返回合并后的树的根节点return t1;}
};

总结

这题可以用很多种方法,不管前序、中序、后序,使用迭代法解决也很方便,二刷的时候我会全部补齐。

参考资料

 代码随想录

一起操作两个二叉树?有点懵!| LeetCode:617.合并二叉树_哔哩哔哩_bilibili 

关键字:网页设计与制作实践_手机模拟器_百度推广合作_百度seo推广工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: