【leetcode】1305。二つのバイナリ検索ツリー内のすべての要素

次のように内容は次のとおりです。

2二分探索木を考える  root1 と  root2

入ったリストを返します  すべての整数  から  両方のツリーが  昇順にソートします。

例1:

入力:ROOT1 = [2,1,4] root2 = [1,0,3]
出力:[0,1,1,2,3,4]

例2:

入力:ROOT1 = [0、-10,10]、root2 = [5,1,7,0,2]
出力:[-10,0,0,1,2,5,7,10]

例3:

入力:ROOT1 = []、root2 = [5,1,7,0,2]
出力:[0,1,2,5,7]

例4:

入力:ROOT1 = [0、-10,10]、root2 = []
出力:[-10,0,10]

例5:

入力:ROOT1 = [1、NULL、8]、root2 = [8,1]
出力:[1,1,8,8] 

制約:

  • 各ツリーは、最大であり  5000 、ノード。
  • 各ノードの値が間にあります  [-10^5, 10^5]

問題解決のアイデア:最も簡単な方法は、値を並べ替えることができ、2つのツリーをトラバースすることです。

コードは以下の通りであります:

バイナリツリーノードのための定義。クラスのTreeNode(オブジェクト):      デフ__init __(自己、X):          self.val = X          self.left =なし         self.right =なし

クラスのソリューション(オブジェクト):
    RES = []
     DEF 再帰(自ノード)。
        self.res.append(node.val)
        もし node.left =!なし:
            self.recursive(node.left)
        もし node.right =!なし:
            self.recursive(node.right)
    デフgetAllElements(自己
        、ROOT1、root2):""」
        :タイプROOT1:TreeNodeの
        :タイプroot2:TreeNodeの
        :RTYPE:リスト[INT]
        ""」
        self.res = []
         の場合 ROOT1 =!なし:
            self.recursive(ROOT1)
        もし root2 =!なし:
            self.recursive(root2)
        返すソート(self.resを)

 

おすすめ

転載: www.cnblogs.com/seyjs/p/12150563.html