Python3 合并二叉樹的實(shí)現(xiàn)
題目要求:給定兩個(gè)二叉樹,想象當(dāng)你將它們中的一個(gè)覆蓋到另一個(gè)上時(shí),兩個(gè)二叉樹的一些節(jié)點(diǎn)便會(huì)重疊。你需要將他們合并為一個(gè)新的二叉樹。合并的規(guī)則是如果兩個(gè)節(jié)點(diǎn)重疊,那么將他們的值相加作為節(jié)點(diǎn)合并后的新值,否則不為 NULL 的節(jié)點(diǎn)將直接作為新二叉樹的節(jié)點(diǎn)。
解決思想:遇到二叉樹,首先想到的是遞歸實(shí)現(xiàn)。為了降低空間消耗,兩個(gè)二叉樹合并為一個(gè)時(shí),不再新建樹。初始給定兩個(gè)樹的當(dāng)前結(jié)點(diǎn)(根結(jié)點(diǎn))t1、t2,若t1和t2節(jié)點(diǎn)均不為空,t1節(jié)點(diǎn)值更新為t1+t2的值,遞歸遍歷當(dāng)前節(jié)點(diǎn)的左子樹和右子樹;如果任意其中一個(gè)節(jié)點(diǎn)為空,且不全為空,返回非空節(jié)點(diǎn);如果兩節(jié)點(diǎn)均為空,返回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
時(shí)間空間消耗:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python對(duì)稱的二叉樹多種思路實(shí)現(xiàn)方法
- python3實(shí)現(xiàn)在二叉樹中找出和為某一值的所有路徑(推薦)
- Python實(shí)現(xiàn)二叉樹的最小深度的兩種方法
- Python3 翻轉(zhuǎn)二叉樹的實(shí)現(xiàn)
- Python3實(shí)現(xiàn)二叉樹的最大深度
- 用Python實(shí)現(xiàn)二叉樹、二叉樹非遞歸遍歷及繪制的例子
- 基于python二叉樹的構(gòu)造和打印例子
- Python 二叉樹的層序建立與三種遍歷實(shí)現(xiàn)詳解
- python3實(shí)現(xiàn)二叉樹的遍歷與遞歸算法解析(小結(jié))
- 如何在Python中創(chuàng)建二叉樹
相關(guān)文章
用Python編寫一個(gè)簡單的FUSE文件系統(tǒng)的教程
這篇文章主要介紹了用Python編寫一個(gè)簡單的FUSE文件系統(tǒng)的教程,對(duì)于數(shù)據(jù)的備份很有幫助,需要的朋友可以參考下2015-04-04
python常用數(shù)據(jù)結(jié)構(gòu)集合詳解
這篇文章主要介紹了python常用數(shù)據(jù)結(jié)構(gòu)集合詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-08-08
Python利用PIL實(shí)現(xiàn)多張圖片合成gif動(dòng)畫的案例詳解
這篇文章主要介紹了Python利用PIL實(shí)現(xiàn)多張圖片合成gif動(dòng)畫的案例,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動(dòng)手試一下2023-11-11
最強(qiáng)Python可視化繪圖庫Plotly詳解用法
數(shù)據(jù)分析離不開數(shù)據(jù)可視化。Plotly 是一款用來做數(shù)據(jù)分析和可視化的在線平臺(tái),功能非常強(qiáng)大,可以在線繪制很多圖形比如條形圖、散點(diǎn)圖、餅圖、直方圖等等2021-11-11
基于Python3.7.1無法導(dǎo)入Numpy的解決方式
這篇文章主要介紹了基于Python3.7.1無法導(dǎo)入Numpy的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
解決Python安裝時(shí)報(bào)缺少DLL問題【兩種解決方法】
這篇文章主要介紹了解決Python安裝時(shí)報(bào)缺少DLL問題,本文通過兩種方法給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07
Pyside6 安裝和簡單界面開發(fā)過程詳細(xì)介紹
PySide是跨平臺(tái)應(yīng)用程序框架Qt的Python綁定,Qt是跨平臺(tái)C++圖形可視化界面應(yīng)用開發(fā)框架,自推出以來深受業(yè)界盛贊,Pyside6是利用Python語言進(jìn)行開發(fā)的GUI,所以在使用Pyside6前要先安裝Python環(huán)境,本文給大家介紹Pyside6 安裝和簡單界面開發(fā)過程,一起看看吧2023-10-10
pytorch使用Variable實(shí)現(xiàn)線性回歸
這篇文章主要為大家詳細(xì)介紹了pytorch使用Variable實(shí)現(xiàn)線性回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
pytorch實(shí)現(xiàn)seq2seq時(shí)對(duì)loss進(jìn)行mask的方式
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)seq2seq時(shí)對(duì)loss進(jìn)行mask的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

