모든 요소 LeetCode- 두 이진 검색 트리

참고 : LeetCode-- 나무 테마.

题目链接(1305) : https://leetcode-cn.com/problems/all-elements-in-two-binary-search-trees/

주제 설명 :

당신을 위해  root1 그리고  root2 이 두 이진 검색 트리.

두 나무의 오름차순으로 정렬 된 모든 정수를 포함하는 목록을 보내 주시기 바랍니다. .

예 :

입력 : 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]

....

문제 해결 아이디어 :

이진 트리에 대해서, 내 첫번째 생각은 재귀입니다. 주제에 따르면, 각 노드가, 이진 트리를 탐색 노드의 값을 얻을, 그들을 정렬하는 것이 분명하다.

코드 :

TreeNode를 클래스 : 
는 def __init __ (자체, X) :
self.val = X
self.left = 없음
self.right = 없음

클래스 해결책 :
DEF의 getAllElements (자기의 ROOT1 다음의 TreeNode, ROOT2 다음의 TreeNode) ->리스트 [INT]
L = []
self.getroot (ROOT1, L)의 # ROOT1은 각 노드의 값을 구하는
(ROOT2, l) self.getroot # 가져 각 노드의 값 ROOT2
        l.sort () 
반환 리터

DEF getRoot (자체 루트 다음의 TreeNode, L : 목록 [INT]) :
IF 루트 : 노드가 # 존재하는 경우
l.append (root.val) # (L)가 노드 값의 목록에 추가됩니다
자체. getroot (root.left, l) # 재귀
self.getroot (root.right, L)
다른 :
리턴

이전 : 중간 노드의 목록

추천

출처www.cnblogs.com/RiverMap/p/12584207.html