日々の問題--- LeetCode(617)は、バイナリツリーをマージ

件名の説明:

あなたがカバーにお互いにそれらを想像したときに、2つのバイナリツリーを考えると、いくつかのノードは、2つのバイナリツリーをオーバーラップします。
あなたは、新しいバイナリツリーにマージする必要があります。ルールの統合は、2つのノードが重複する場合、それらの値を合併ノードの後に新しい値として追加されることで、
またはノードがNULLでないバイナリツリーとして新しいノードを指示します。

 

思考:
AB同期再帰的ツリーを2つのAおよびBリターンでは更新する
再帰的プロセス:
現在のノードが空Aである場合、現在のノードBを返し
、現在のノードBは、現在のノードAが空で返した場合
(この場合は、すでに両方に含まれます) AB 2つの現在のノードが空であるか、またはヌルである
ヴァル現在のノードをBに添加するヴァルaに戻ることが空ではないが
、T1ルートを返します

クラス溶液(オブジェクト):
     DEF mergeTrees(自己、T1、T2):
        
        なら ないT1:
             戻りT2
         なら ないT2:
             戻りT1 
        t1.val + = t2.val 
        t1.left = self.mergeTrees(t1.left、T2。左)
        t1.right = self.mergeTrees(t1.right、t2.right)
         戻り T1

リンクします。https://leetcode-cn.com/problems/merge-two-binary-trees/solution/zhi-xing-yong-shi-1ms-ji-bai-100-by-zmillionaire/

 

おすすめ

転載: www.cnblogs.com/fighting25/p/11487344.html