最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3 合并二叉樹的實(shí)現(xiàn)

 更新時(shí)間:2019年09月30日 09:24:58   作者:任庭玉  
這篇文章主要介紹了Python3 合并二叉樹的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

題目要求:給定兩個(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

周口市| 辛集市| 金溪县| 淮安市| 西安市| 阜新| 阳春市| 杭锦旗| 壶关县| 且末县| 科技| 岳阳市| 通州市| 华池县| 威远县| 靖西县| 开封县| 威宁| 安达市| 赤城县| 胶南市| 锡林郭勒盟| 定州市| 德保县| 新龙县| 云林县| 南宁市| 桃园县| 菏泽市| 廉江市| 宜昌市| 休宁县| 托克托县| 台山市| 凤庆县| 灵武市| 石门县| 阿城市| 内丘县| 清原| 永定县|