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

617. 合并二叉树

目录

一:题目:

二:代码:

三:结果:


一:题目:

给你两棵二叉树: root1 和 root2 。

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

返回合并后的二叉树。

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

二:代码:

/*** 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==NULL) return root2;if(root2==NULL) return root1;queue<TreeNode*> que;que.push(root1);que.push(root2);while(!que.empty()){TreeNode* node1=que.front();que.pop();TreeNode* node2=que.front();que.pop();node1->val += node2->val;if(node1->left!=NULL&&node2->left!=NULL){que.push(node1->left);que.push(node2->left);}if(node1->right!=NULL&&node2->right!=NULL){que.push(node1->right);que.push(node2->right);}if (node1->left == NULL && node2->left != NULL) {node1->left = node2->left;}if (node1->right == NULL && node2->right != NULL) {node1->right = node2->right;}}return root1;}
};

三:结果:


http://www.mrgr.cn/news/16942.html

相关文章:

  • 【AI 绘画】更快?更省显存?支持 FLUX?使用绘世启动器安装 SD WebUI Forge
  • 【王树森】Few-Shot Learning小样本学习 (1/3): 基本概念(个人向笔记)
  • AutoGen 检索增强生成(RAG)功能解析
  • 拥抱开源拥护国产|暴雨打造最强AI的服务器操作系统!
  • 前端进阶| 深入学习面向对象设计原则
  • Oracle(98)如何启用审计?
  • 结构化数据、半结构化数据、非结构化数据
  • 30Kg载重1小时长续航油电混动无人机技术详解
  • 部署project_exam_system项目——及容器的编排
  • 客户端、APP、Desktop和H5的区别
  • 【深度遍历】【排列组合】【力扣】有重复字符串的排列组合
  • 智慧警用装备管理系统|支持国产化
  • 博客园-awescnb插件-geek皮肤优化-目录优化
  • 网络编程学习:TCP/IP协议
  • 苍穹外卖项目前端DAY01
  • 域渗透应急响应
  • 苹果mac数据恢复概率大吗 mac数据恢复专业软件哪个好用
  • Python | Leetcode Python题解之第388题文件的最长绝对路径
  • C++笔记---模板初阶
  • Linux系统性能调优全面指南