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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 Python
python实现简单socket通信的方法
Apr 19 Python
django实现前后台交互实例
Aug 07 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
python中get和post有什么区别
Jun 19 Python
Python发送邮件实现基础解析
Aug 14 Python
python 实现Harris角点检测算法
Dec 11 Python
Python自动化工具之实现Excel转Markdown表格
Apr 08 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作的文本留言本的例子(二)
2006/10/09 PHP
PHP 简单数组排序实现代码
2009/08/05 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
JS & JQuery 动态添加 select option
2016/06/08 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
Python程序设计入门(3)数组的使用
2014/06/16 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
用Python实现随机森林算法的示例
2017/08/24 Python
python代码实现ID3决策树算法
2017/12/20 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
大四学生思想汇报
2014/01/13 职场文书
高中军训感言500字
2014/02/24 职场文书
工会主席事迹材料
2014/06/03 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
大学生实训报告总结
2014/11/05 职场文书
行政文员岗位职责
2015/02/04 职场文书
小学生表扬稿范文
2015/05/05 职场文书
新员工辞职信范文
2015/05/12 职场文书
个人收入证明格式
2015/06/24 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技