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 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
django 环境变量配置过程详解
Aug 06 Python
解决python 文本过滤和清理问题
Aug 28 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
python如何编写win程序
Jun 08 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
php实现mysql数据库备份类
2008/03/20 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python抓取百度查询结果的方法
2015/07/08 Python
python中logging包的使用总结
2018/02/28 Python
python的依赖管理的实现
2019/05/14 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Python sorted对list和dict排序
2020/06/09 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
财务副总经理工作职责
2013/11/25 职场文书
社会学专业求职信
2014/02/24 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android