当前位置:网站首页>617. 合并二叉树(Easy)
617. 合并二叉树(Easy)
2022-04-22 07:43:00 【weixin_46272577】
617. 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。
示例 1:
输入:
Tree 1 Tree 2
1 2
/ \ / \
3 2 1 3
/ \ \
5 4 7
输出:
合并后的树:
3
/ \
4 5
/ \ \
5 4 7
注意: 合并必须从两个树的根节点开始。
思路
两种做法
- 第一种,直接在一个结点里改变结点的值,再返回这个结点;
- 第二种,根据两个树创建一个新的树,并返回新的树的头节点
这里用第一种做法,dfs同时搜索两个树,返回条件是若某一结点为空则直接返回另一个结点。
源代码
class Solution {
public:
TreeNode* dfs(TreeNode* root1, TreeNode* root2) {
if (root1 == nullptr || root2 == nullptr) {
// 如果某一结点为空,则返回不为空的结点 或者都为空,返回空结点
return root1 == nullptr ? root2 : root1;
}
// 结点都存在的情况下
root1->val += root2->val;// 结点值变为两结点之和
root1->left = dfs(root1->left,root2->left);// 向左递归
root1->right = dfs(root1->right,root2->right);// 向右递归
return root1;
}
TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
if (root1 == nullptr || root2 == nullptr) {
// 如果根节点某一为空, 则返回不为空的结点 或者都为空,返回空结点
return root1 == nullptr ? root2 : root1;
}
dfs(root1,root2);
return root1;
}
};
版权声明
本文为[weixin_46272577]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_46272577/article/details/118022246
边栏推荐
- Cloud computing learning 2 - keystone component operation and maintenance and testing
- 【大话云原生】微服务篇-五星级酒店的服务方式
- Redis non relational database - redis high availability, persistence and performance management
- Flutter ListView 加载更多
- 7-34 删除重复字符(set用法)&&7-35 统计字符出现次数(unordered_map)
- 129. 求根节点到叶节点数字之和(Medium)
- 电影票选座左右间隔为空不能选
- Amino (- NH2) phthalocyanine copper CAS: 28632-30-6 (tetraaminophthalocyanine) copper (II) tetraaminophthalocyanine copper (cutapc) - shared by Qiyue biological editor
- 【论文阅读】【3d目标检测】pvgnet
- 2-15 求组合数
猜你喜欢

新零售发展趋势下,社交电商平台如何运营推广?

58 Technology Salon issue 28 - anjuke quality assurance system Salon

nacos基础(4):配置nacos外部数据库

Amino (- NH2) phthalocyanine copper CAS: 28632-30-6 (tetraaminophthalocyanine) copper (II) tetraaminophthalocyanine copper (cutapc) - shared by Qiyue biological editor

The domestic cloud security market has exceeded 10 billion yuan. What is the future development trend?

广城云服务实现每天定时填写一日一报

The industrialization of SCRM has accelerated, and the manufacturing industry has begun to play with private traffic

Flutter 判断网络可用性

Airtest安装及介绍

ViewPager用法详细解析
随机推荐
nacos基础(1):什么是配置中心&Nacos介绍
Variante rapide: trouver le nombre maximum de K premiers
centos7安装MySQL8.0
shell脚本学习——实战案例
Airtest installation and introduction
Use the method of onlayoutchangelistener to solve the problem of gettop = 0
3-1 compare size
cesium鼠标拾取要素,并判断要素类别
Flutter ListView 加载更多
地图裁剪器,可以将图片裁剪成瓦片数据,主要用途是将高清卫星图像裁剪成瓦片图,可以做离线地图的开发,基于墨卡托坐标
Leetcode 111 Balanced binary tree (2022.04.21)
129. 求根节点到叶节点数字之和(Medium)
JSON数据文本
ViewPager用法详细解析
shell脚本学习笔记——shell对文件的操作sed
Nacos Foundation (1): what is configuration center & introduction to Nacos
58 Technology Salon issue 28 - anjuke quality assurance system Salon
SmartTabLayout 简介
MaterialApp
BLDC双闭环(速度PI+电流PI)simulink仿真模型