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

江门网站优化公司金坛住房和城乡建设局网站

江门网站优化公司,金坛住房和城乡建设局网站,深圳今天新闻头条,哈尔滨网站公司前言 二叉树篇#xff0c;继续。 记录 五十二【617.合并二叉树】 一、题目阅读 给你两棵二叉树#xff1a; root1 和 root2 。 想象一下#xff0c;当你将其中一棵覆盖到另一棵之上时#xff0c;两棵树上的一些节点将会重叠#xff08;而另一些不会#xff09;。你需要…前言 二叉树篇继续。 记录 五十二【617.合并二叉树】 一、题目阅读 给你两棵二叉树 root1 和 root2 。 想象一下当你将其中一棵覆盖到另一棵之上时两棵树上的一些节点将会重叠而另一些不会。你需要将这两棵树合并成一棵新二叉树。合并的规则是如果两个节点重叠那么将这两个节点的值相加作为合并后节点的新值否则不为 null 的节点将直接作为新二叉树的节点。 返回合并后的二叉树。 注意: 合并过程必须从两个树的根节点开始。 示例 1 输入root1 [1,3,2,5], root2 [2,1,3,null,4,null,7] 输出[3,4,5,5,4,null,7]示例 2 输入root1 [1], root2 [1,2] 输出[2,2]提示 两棵树中的节点数目在范围 [0, 2000] 内 -10^4 Node.val 10^4二、尝试实现 思路 本题需要同时操作两个树那么学过记录 四十二【101. 对称二叉树】 的方法是同时操作两个树。所以同样的思路解决这道题。通过递归实现开始分步完成递归函数。确定递归的参数因为同时操作两个树所以两个参数TreeNode* root1和TreeNode* root2。确定递归返回值返回合并之后的子树。所以返回值类型TreeNode* 。确定终止条件 root1和root2都是空返回空节点root1或root2只有一个为空返回不为空的节点root1和root2都不是空进入递归处理逻辑。 递归逻辑本题也相当于构造一个新的二叉树——记录 五十一【654.最大二叉树】中学习到使用前序遍历。 先创建中间节点。值为root1-valroot2-val。递归左子树递归右子树。 代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {//终止条件if(!root1 !root2) return nullptr;if(!root1 root2) return root2;if(root1 !root2) return root1;//两个同时存在时处理顺序前序中左右TreeNode* root new TreeNode(root1-valroot2-val);root-left mergeTrees(root1-left,root2-left);root-right mergeTrees(root1-right,root2-right);return root;} };三、参考学习 参考学习链接 学习内容 递归法思路和二、中的思路一致但是代码处理上的区别如下 终止条件 参考给的终止条件同时为空的逻辑在这两行中可以涵盖。if (t1 NULL) return t2; // 如果t1为空合并之后就应该是t2 if (t2 NULL) return t1; // 如果t2为空合并之后就应该是t1二、中代码实现的终止条件分成3类。 新定义树或重复利用某一个树 参考在合并时重复利用root1这个树在这个树上合并操作。没有新定义在二、中代码实现中新定义树节点自然可以重复利用root2这个树root2-val root1-val; 遍历顺序根据学习经验方便理解可以确定前序遍历好理解。但是重复利用某个树的时候前中后遍历顺序都可以。 迭代法同样需要同时处理两个树。那么处理的两个对象需要同时放到容器中类似记录 四十二【101. 对称二叉树】中迭代实现。 迭代代码实现 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {queueTreeNode* q;if(!root1) return root2;if(!root2) return root1;q.push(root1);q.push(root2);while(!q.empty()){TreeNode* node1 q.front();q.pop();TreeNode* node2 q.front();q.pop();//复用root1node1-val node2-val;if(node1-left node2-left){q.push(node1-left);q.push(node2-left);}if(node1-right node2-right){q.push(node1-right);q.push(node2-right);}//复用树1所以用树1的左右判断是否为空。if(!node1-left){node1-left node2-left;}if(!node1-right){node1-right node2-right;}}return root1;} };总结 【617.合并二叉树】用到的知识点学习过能够想到并应用即可。 学习记录 同时操作两个树记录 四十二【101. 对称二叉树、100.相同的树、572.另一个树的子树】构造二叉树记录 五十一【654.最大二叉树】 欢迎指正转载标明出处
http://www.pierceye.com/news/745929/

相关文章:

  • 课程网站开发建设商务网站的费用
  • 资讯网站优化排名wordpress 删除所有文章
  • 旅游海外推广网站建设方案wordpress外观无法编辑
  • 品牌手表网站网站推广律师关键词有哪些
  • 卖视频会员个人网站怎么做推广网站的图片怎么做
  • 服务器关闭 网站被k微信公众号推广的好处
  • 工业设计招聘信息网站做网站首页轮播图代码
  • 央企网站开发手机网站 input
  • 千里马招标网站东莞网站推广行者seo08
  • 网络工程专业主要学什么百度seo课程
  • 网站定制开发收费标准是多少网站导航功能
  • 东莞网站(建设信科网络)公众号小程序开发公司
  • dw网站结构图怎么做4399电脑版网页链接
  • 网站服务器网址招聘seo专员
  • 个人网站模板psd主机服务器网站 怎么做
  • 网站开发公司的义务深圳 电子商务网站开发
  • 北京外贸网站设计备案宁波网站推广专业的建站优化公司
  • 政协系统网站建设织梦手机网站
  • 网站建设上海网站制作如何修改上线网站
  • 漫画网站建设教程网站描述怎么设置
  • 网站左侧树形导航怎么做农村网站做移动
  • 建立企业网站方案php做简单网站教程
  • 一个网站交互怎么做的银行营销活动方案
  • 网站读取速度慢58同城二手房出售
  • 个人备案 网站名称 例子wordpress怎样下载
  • 郑州网络营销网站定制做网站服务
  • 学校网站英文怎么做souq网站
  • 原油可以取什么做标题发网站免费建网站哪个好
  • 莱特币做空 网站一个虚拟主机可以放几个网站
  • 注册个体可以做网站吗太平洋建设集团有限公司