Python3 合并二叉树的实现


Posted in Python onSeptember 30, 2019

题目要求:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。

解决思想:遇到二叉树,首先想到的是递归实现。为了降低空间消耗,两个二叉树合并为一个时,不再新建树。初始给定两个树的当前结点(根结点)t1、t2,若t1和t2节点均不为空,t1节点值更新为t1+t2的值,递归遍历当前节点的左子树和右子树;如果任意其中一个节点为空,且不全为空,返回非空节点;如果两节点均为空,返回None。

直接上代码( ̄? ̄):

# Definition for a binary tree node.
# class TreeNode:
#   def __init__(self, x):
#     self.val = x
#     self.left = None
#     self.right = None

class Solution:
  def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:
    if t1!=None and t2!=None:
      t1.val+=t2.val
      t1.left = self.mergeTrees(t1.left,t2.left)
      t1.right = self.mergeTrees(t1.right,t2.right)
    elif t1==None and t2!=None:
      return t2
    elif t1!=None and t2==None:
      return t1
    else:
      return None
    return t1

时间空间消耗:

Python3 合并二叉树的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中if __name__ == "__main__"详细解释
Oct 21 Python
python实现计算倒数的方法
Jul 11 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
Python适配器模式代码实现解析
Aug 02 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
django 实现简单的插入视频
Apr 07 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
Python爬虫中Selenium实现文件上传
Dec 04 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 #Python
softmax及python实现过程解析
Sep 30 #Python
python根据时间获取周数代码实例
Sep 30 #Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 #Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 #Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 #Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 #Python
You might like
php里array_work用法实例分析
2015/07/13 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
js实现楼层导航功能
2017/02/23 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
python抓取最新博客内容并生成Rss
2015/05/17 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
Python语言的变量认识及操作方法
2018/02/11 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Python PIL库图片灰化处理
2020/04/07 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
Linux常见面试题
2013/03/18 面试题
介绍一下你对SOA的认识
2016/04/24 面试题
房地产出纳岗位职责
2013/12/01 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers