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数据结构之Array用法实例
Oct 09 Python
python通过floor函数舍弃小数位的方法
Mar 17 Python
python创建关联数组(字典)的方法
May 04 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
python求最大连续子数组的和
Jul 07 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
python实现梯度下降法
Mar 24 Python
解决windows下python3使用multiprocessing.Pool出现的问题
Apr 08 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
如何查看python关键字
Jan 17 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
一个好用的分页函数
2006/11/16 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
php事务处理实例详解
2014/07/11 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
python发送arp欺骗攻击代码分析
2014/01/16 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
Python判断有效的数独算法示例
2019/02/23 Python
python sort、sort_index方法代码实例
2019/03/28 Python
对Django url的几种使用方式详解
2019/08/06 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
学校七一活动方案
2014/01/19 职场文书
护士在校生自荐信
2014/02/01 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
辞职书格式样本
2015/02/26 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
python实现简单反弹球游戏
2021/04/12 Python