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批量提交沙箱问题实例
Oct 08 Python
介绍Python的@property装饰器的用法
Apr 28 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
Python for循环中的陷阱详解
Jul 13 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
对python生成业务报表的实例详解
Feb 03 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
python各种excel写入方式的速度对比
Nov 10 Python
关于 Python json中load和loads区别
Nov 07 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
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
php实现网站插件机制的方法
2009/11/10 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
介绍一些UNIX常用简单命令
2014/11/11 面试题
大四学年自我鉴定
2013/11/13 职场文书
受欢迎的大学生自我评价
2013/12/05 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
公证委托书格式
2014/09/13 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
Python安装使用Scrapy框架
2022/04/12 Python