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正则表达式re模块详细介绍
May 29 Python
python调用fortran模块
Apr 08 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
Python实现的概率分布运算操作示例
Aug 14 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
浅析Python数字类型和字符串类型的内置方法
Dec 22 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 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/10/09 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
transform python环境快速配置方法
2018/09/27 Python
Python的log日志功能及设置方法
2019/07/11 Python
Python通过文本和图片生成词云图
2020/05/21 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
实习生自我评价
2014/01/18 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
三好学生事迹材料
2014/12/24 职场文书
遗愿清单观后感
2015/06/09 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
详解如何使用Nginx解决跨域问题
2022/05/06 Servers
Python使用pyecharts控件绘制图表
2022/06/05 Python