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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python常见内置高效率函数用法示例
Jul 31 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
Django框架表单操作实例分析
Nov 04 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
Feb 14 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 Python
Pandas加速代码之避免使用for循环
May 30 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
js单例模式详解实例
2013/11/21 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
javascript运行机制之执行顺序理解
2020/08/03 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
Python实现从URL地址提取文件名的方法
2015/05/15 Python
Python+django实现文件上传
2016/01/17 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
django 中QuerySet特性功能详解
2019/07/25 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
python中如何进行连乘计算
2020/05/28 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
自动化专业本科毕业生求职信
2013/10/20 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
语文教学随笔感言
2014/02/18 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
询价采购方案
2014/06/09 职场文书
一文搞懂Python Sklearn库使用
2021/08/23 Python
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL