力扣 617-合并二叉树

news/2024/5/12 17:14:38

二叉树使用递归,就要想使用前中后哪种遍历方式?

本题使用哪种遍历都是可以的!

我们下面以前序遍历为例。

那么我们来按照递归三部曲来解决:

  1. 确定递归函数的参数和返回值:

首先要合入两个二叉树,那么参数至少是要传入两个二叉树的根节点,返回值就是合并之后二叉树的根节点。

public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
  1. 确定终止条件:

因为是传入了两个树,那么就有两个树遍历的节点root1 和 root2,如果root1 == NULL 了,两个树合并就应该是 root2 了(如果root2也为NULL也无所谓,合并之后就是NULL)。

反过来如果root2 == NULL,那么两个数合并就是root1(如果root1也为NULL也无所谓,合并之后就是NULL)。

代码如下:

if (root1 == NULL) return root2; // 如果root1为空,合并之后就应该是root2
if (root2 == NULL) return root1; // 如果root2为空,合并之后就应该是root1
  1. 确定单层递归的逻辑:

单层递归的逻辑就比较好写了,这里我们重复利用一下root1这个树,root1就是合并之后树的根节点(就是修改了原来树的结构)。

那么单层递归中,就要把两棵树的元素加到一起。

root1.val=root1.val+root2.val;

接下来root1 的左子树是:合并roo t1左子树roo t2左子树之后的左子树。

root1 的右子树:是 合并roo t1右子树roo t2右子树之后的右子树。

最终root1就是合并之后的根节点。

代码如下:

class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if(root1 == null) return root2;if(root2 == null) return root1;root1.val=root1.val+root2.val;root1.left=mergeTrees(root1.left,root2.left);root1.right=mergeTrees(root1.right,root2.right);return root1;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10474.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

XSS-Labs靶场1---11关

一、XSS环境搭建: [ 靶场环境篇 ] XSS-labs 靶场环境搭建(特别详细)_xss靶场搭建-CSDN博客 (该博主总结的较为详细,若侵权必删) 常用的xss攻击语句: 输入检测确定标签没有过滤后,为了显示存在漏洞&#…

PyTorch之完整的神经网络模型训练

简单的示例: 在PyTorch中,可以使用nn.Module类来定义神经网络模型。以下是一个示例的神经网络模型定义的代码: import torch import torch.nn as nnclass MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()# 定义神经…

Win10桌面便签小工具怎么添加?一招轻松搞定!

在这个信息爆炸的时代,如何高效地管理自己的时间和任务成为了许多人关注的焦点。而Win10桌面便签小工具作为一款简单实用的工具,正逐渐受到更多人的关注和喜爱。作为Win10系统中常用的便捷工具之一,桌面便签小工具的添加操作简单又实用。那么…

阳光音乐厅订票系统技术解析 Java+SpringBoot+Vue+MySQL

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

多模态响应与功能集成!华中科技大学微型磁控胶囊机器人登上《Nature Communications》!

胶囊机器人可以通过口服方式抵达胃肠道病灶区域实施医疗功能,为实现胃肠道疾病无痛无创诊疗和提高患者依从性提供了重要途径。其中,磁控胶囊机器人技术因其驱动方式具有非接触、穿透性能好和控制模式丰富等优势而被认为是最理想的胃肠道疾病诊疗手段之一…

Linux 进程状态环境变量

目录 一、操作系统的进程状态 二、Linux内核的进程状态 1、S、R状态 2、前后台进程 3、可中断睡眠(S>>T状态) 4、D状态(不可中断睡眠) 5、僵尸进程(Z状态) 三、孤儿进程 四、优先级 1、概念 2、PRI and NI 3、查看进程优先级 五、其他概念 六、环境…