当前位置: 首页 > news >正文

个人网站可以做资讯吗?宁波seo外包优化公司

个人网站可以做资讯吗?,宁波seo外包优化公司,118论坛网址之家,网页设计欣赏怎么做题目 难度:简单 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是&#xf…

题目

难度:简单

给你两棵二叉树: root1root2

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。

返回合并后的二叉树。

注意: 合并过程必须从两个树的根节点开始。
在这里插入图片描述

思路

  1. 本题可以通过常见的二叉树的遍历方式(同时也是递归的方式),同时遍历两棵树,每次遍历获取相同的节点,然后根据以下三种情况求和
    1. 若遍历到的位置均不为空,则对两个节点求和,将求和的结果覆盖 root2 的这个节点
    2. 若遍历到的位置,root1 为空,则返回 root2 的值(root2 为空也返回)
    3. 若遍历到的位置,root2 为空,则返回 root1 的值(root1 为空也返回)
  2. 对代码的图解见代码实现部分

代码实现

本代码采用前序遍历的方式来遍历两棵二叉树

    TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if (root1 == nullptr) return root2;if (root2 == nullptr) return root1;// 将新值覆盖在 root2 上root2->val = root2->val + root1->val;root2->left = mergeTrees(root1->left, root2->left);root2->right = mergeTrees(root1->right, root2->right);return root2;}

下面通过一个示意图来演示递归的效果(左树为 root1,右树为 root2,右侧方框表示函数栈)
在这里插入图片描述
首先,root1 和 root2 入栈,此时它们分别指向的值是 1,2,按照求和的要求,符合情况 1,于是 root2 的值更新为 3。

此时代码执行到了 root2->left = mergeTrees(root1->left, root2->left); 处,我们继续将 root1,root2 的左节点传入递归函数。
在这里插入图片描述
如图,我们看到出现了一个新的函数调用栈,此时的 root1 和 root2 为 3 和 1,它们分别是传入的上一层函数中的 root1->left 和 root2->left 的值。

同理计算 root2->val = root2->val + root1->val; 得到 root2 的值为 4。

此时代码执行到了 root2->left = mergeTrees(root1->left, root2->left); 处,我们继续将 root1,root2 的左节点传入递归函数。

在这里插入图片描述
在该层递归的代码中,因为 root2 为 null,所以触发了以下这段代码,于是此栈被销毁,并返回上一层栈中。

        if (root2 == nullptr) {return root1;}

在这里插入图片描述
此时左节点已经处理完了,接着处理右节点(即红色节点的右节点),处理方式同上一步相同。

之后的步骤以此类推就可以完成。

时空复杂度分析

时间复杂度为为 O(n),n 为节点的个数,空间复杂度为 O(h),h 为树的高度,因为每一层树都要开辟一个新的栈空间

http://www.hkea.cn/news/372936/

相关文章:

  • 上海做b2b网站公司深圳公司网络推广该怎么做
  • 自己做的网站怎么在百度可以查到网络小说网站三巨头
  • 怎么做网站客服弹窗站长之家seo工具包
  • 自己建一个电商网站吗网络营销的定义
  • 专门做金融的招聘网站四川seo选哪家
  • wordpress nginx伪静态配置拼多多seo怎么优化
  • 深圳网站开发电话惠州网络营销
  • 中宁网站建设公司商城全网推广运营公司
  • 网站文章列表如何排版郑州seo技术培训班
  • 小型b2c网站百度开户渠道商哪里找
  • 武进区住房和城乡建设局网站爱站网能不能挖掘关键词
  • APP手机端电子商务网站建设营销成功的案例
  • 公司网站引导页百度搜索关键词排名优化技术
  • 网站开发与维护学什么网站建设seo优化培训
  • 常州网站开发百度网盘电脑版官网
  • wordpress安全权限关键词优化公司哪家好
  • 银川做网站服务google play下载安卓
  • 科技型中小企业服务网安徽搜索引擎优化seo
  • 网站建设专家排名邯郸seo营销
  • 做网站一个月20g流量够吗安全又舒适的避孕方法有哪些
  • 扫二维码直接进网站怎么做怎么提交网址让百度收录
  • 柳州建设局网站广告买卖网
  • 做外贸一般上哪些网站google play谷歌商店
  • 泉州手机网站制作如何做企业产品推广
  • 徐州手机网站设计汕头网站建设优化
  • 有没有专业收费做网站优化的百度百科优化排名
  • 常州网站建设哪家便宜江西seo推广软件
  • 如何用pageadmin做网站品牌宣传策略有哪些
  • 网站免费优化软件需要优化的地方
  • 24小时学会网站建设下载厦门百度竞价开户