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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
用Python編寫一個簡單的FUSE文件系統(tǒng)的教程
這篇文章主要介紹了用Python編寫一個簡單的FUSE文件系統(tǒng)的教程,對于數(shù)據(jù)的備份很有幫助,需要的朋友可以參考下2015-04-04
python常用數(shù)據(jù)結(jié)構(gòu)集合詳解
這篇文章主要介紹了python常用數(shù)據(jù)結(jié)構(gòu)集合詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-08-08
Python利用PIL實現(xiàn)多張圖片合成gif動畫的案例詳解
這篇文章主要介紹了Python利用PIL實現(xiàn)多張圖片合成gif動畫的案例,文章通過代碼示例介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動手試一下2023-11-11
基于Python3.7.1無法導(dǎo)入Numpy的解決方式
這篇文章主要介紹了基于Python3.7.1無法導(dǎo)入Numpy的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
pytorch實現(xiàn)seq2seq時對loss進行mask的方式
今天小編就為大家分享一篇pytorch實現(xiàn)seq2seq時對loss進行mask的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

