Python3 合并二叉树的实现

 更新时间:2019年09月30日 09:24:58   作者:任庭玉  
这篇文章主要介绍了Python3 合并二叉树的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

时间空间消耗:

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

相关文章

  • 用Python编写一个简单的FUSE文件系统的教程

    用Python编写一个简单的FUSE文件系统的教程

    这篇文章主要介绍了用Python编写一个简单的FUSE文件系统的教程,对于数据的备份很有帮助,需要的朋友可以参考下
    2015-04-04
  • python常用数据结构集合详解

    python常用数据结构集合详解

    这篇文章主要介绍了python常用数据结构集合详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-08-08
  • Python利用PIL实现多张图片合成gif动画的案例详解

    Python利用PIL实现多张图片合成gif动画的案例详解

    这篇文章主要介绍了Python利用PIL实现多张图片合成gif动画的案例,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,感兴趣的小伙伴可以自己动手试一下
    2023-11-11
  • 最强Python可视化绘图库Plotly详解用法

    最强Python可视化绘图库Plotly详解用法

    数据分析离不开数据可视化。Plotly 是一款用来做数据分析和可视化的在线平台,功能非常强大,可以在线绘制很多图形比如条形图、散点图、饼图、直方图等等
    2021-11-11
  • 基于Python3.7.1无法导入Numpy的解决方式

    基于Python3.7.1无法导入Numpy的解决方式

    这篇文章主要介绍了基于Python3.7.1无法导入Numpy的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 解决Python安装时报缺少DLL问题【两种解决方法】

    解决Python安装时报缺少DLL问题【两种解决方法】

    这篇文章主要介绍了解决Python安装时报缺少DLL问题,本文通过两种方法给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • Pyside6 安装和简单界面开发过程详细介绍

    Pyside6 安装和简单界面开发过程详细介绍

    PySide是跨平台应用程序框架Qt的Python绑定,Qt是跨平台C++图形可视化界面应用开发框架,自推出以来深受业界盛赞,Pyside6是利用Python语言进行开发的GUI,所以在使用Pyside6前要先安装Python环境,本文给大家介绍Pyside6 安装和简单界面开发过程,一起看看吧
    2023-10-10
  • python模拟enum枚举类型的方法小结

    python模拟enum枚举类型的方法小结

    这篇文章主要介绍了python模拟enum枚举类型的方法,实例总结了python模拟enum枚举类型的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • pytorch使用Variable实现线性回归

    pytorch使用Variable实现线性回归

    这篇文章主要为大家详细介绍了pytorch使用Variable实现线性回归,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • pytorch实现seq2seq时对loss进行mask的方式

    pytorch实现seq2seq时对loss进行mask的方式

    今天小编就为大家分享一篇pytorch实现seq2seq时对loss进行mask的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论