次のように内容は次のとおりです。
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を)