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 相关文章推荐
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
python判断windows系统是32位还是64位的方法
May 11 Python
python常用知识梳理(必看篇)
Mar 23 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
Python实现的摇骰子猜大小功能小游戏示例
Dec 18 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
Python实现Linux监控的方法
May 16 Python
python的命名规则知识点总结
Oct 04 Python
python matplotlib折线图样式实现过程
Nov 04 Python
详解python itertools功能
Feb 07 Python
python如何支持并发方法详解
Jul 25 Python
Python Matplotlib库实现画局部图
Nov 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
PHP中对数据库操作的封装
2006/10/09 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
php面向对象值单例模式
2016/05/03 PHP
浅析js中取绝对值的2种方法
2013/07/09 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
python抓取网页中的图片示例
2014/02/28 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
详解python编译器和解释器的区别
2019/06/24 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
祖国在我心中演讲稿200字
2014/08/28 职场文书
房屋租赁协议书
2014/10/18 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
观后感开头
2015/06/19 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js