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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
用Python編寫一個簡單的FUSE文件系統(tǒng)的教程
這篇文章主要介紹了用Python編寫一個簡單的FUSE文件系統(tǒng)的教程,對于數(shù)據(jù)的備份很有幫助,需要的朋友可以參考下2015-04-04
Python利用PIL實現(xiàn)多張圖片合成gif動畫的案例詳解
這篇文章主要介紹了Python利用PIL實現(xiàn)多張圖片合成gif動畫的案例,文章通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,感興趣的小伙伴可以自己動手試一下2023-11-11
pytorch實現(xiàn)seq2seq時對loss進行mask的方式
今天小編就為大家分享一篇pytorch實現(xiàn)seq2seq時對loss進行mask的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

