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 translator使用实例
Sep 06 Python
Python键盘输入转换为列表的实例
Jun 23 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
使用11行Python代码盗取了室友的U盘内容
Oct 23 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
python爬虫-模拟微博登录功能
Sep 12 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
Python 解析简单的XML数据
Jul 24 Python
python unichr函数知识点总结
Dec 16 Python
关于Python错误重试方法总结
Jan 03 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
星际争霸秘籍
2020/03/04 星际争霸
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php遍历目录方法小结
2015/03/10 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
js精确的加减乘除实例
2017/11/14 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
解析Python中的异常处理
2015/04/28 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
django站点管理详解
2017/12/12 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
python实现杨氏矩阵查找
2019/03/02 Python
python与js主要区别点总结
2020/09/13 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
信息学院毕业生自荐信范文
2014/03/04 职场文书
珍惜水资源建议书
2014/03/12 职场文书
校园标语大全
2014/06/19 职场文书
初三毕业评语
2014/12/26 职场文书
2015年度保密工作总结
2015/04/24 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技