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实现的方法示例
Jul 12 Python
新手常见6种的python报错及解决方法
Mar 09 Python
Python pymongo模块用法示例
Mar 31 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
python3.6实现学生信息管理系统
Feb 21 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
PyCharm如何导入python项目的方法
Feb 06 Python
Python处理PDF与CDF实例
Feb 26 Python
win10安装python3.6的常见问题
Jul 01 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 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
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
zend framework重定向方法小结
2016/05/28 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
python中偏函数partial用法实例分析
2015/07/08 Python
python opencv之SURF算法示例
2018/02/24 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
单位未婚证明范本
2014/01/18 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL