注:LeetCode--ツリーのテーマ。
题目链接(1305):https://leetcode-cn.com/problems/all-elements-in-two-binary-search-trees/
件名の説明:
あなたのために root1
と root2
、この2つのバイナリ検索ツリー。
2つのツリーの昇順にソートされたすべての整数を含むリストを返してください。。
例:
入力:ROOT1 = [2,1,4]、root2 = [1,0,3] 出力:[0,1,1,2,3,4]
入力:ROOT1 = [0、-10,10] 、root2 = [5,1,7,0,2] 出力:[ - 10,0,0,1,2,5,7,10]
入力:ROOT1 = []、root2 = [5,1,7,0,2 ]
出力:[0、 1,2,5,7-]
....
問題解決のアイデア:
バイナリツリーについて、私の最初に考えたのは、再帰的です。被験者によれば、各ノードは、二分木をトラバースノードの値を取得し、それらをソートすることは明らかです。
コード:
ツリーノードクラス:
DEF __init __(自己、X):
self.val = X
self.left =なし
self.right =なし
クラスソリューション:
DEFのgetAllElements(セルフ、ROOT1:ツリーノード、root2:のTreeNode) - >一覧[INT]:
L = []
self.getroot(ROOT1、L)#ROOT1内の各ノードの値を取得
self.getroot(root2、L)#取得各ノードroot2の値
l.sort()
戻りL
DEF getRoot(セルフ、ルート:ツリーノード、L:リスト[INT]):
IFルート:ノードが#存在する場合
l.append(root.val)#1は、ノード値のリストに追加されている
自己。 getroot(root.left、L)#再帰
self.getroot(root.right、L)
他:
リターン