(108)는 이진 검색 나무의 순서 배열로 변환
오름차순에 따라 정렬 된 배열은 매우 균형 이진 검색 트리로 변환됩니다.
이 문제에 매우 균형 잡힌 바이너리 트리의 각 노드의 좌측 및 우측 서브 트리를 1 이하의 절대 값 사이의 높이 차이가되는 이진 트리를 의미한다.
예 :
을 감안할 때 순서 배열 : [-10, -3,0,5,9]
하나 개의 가능한 응답은 [0 -3,9-가 -10, NULL, 5],이 이진 검색 트리 균형이 높이 아래에 표현 될 수있다 :
0
/ \
-3 9
/ /
-10 5
출처 : 유지 버튼 (LeetCode)
링크 : HTTPS : //leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree
모든 네트워크에서 공제 저작권. 상업 재판은 승인 된 공식, 비상업적 무단 전재 소스를 표시하시기 바랍니다 문의하시기 바랍니다.
이진 트리 노드에 대한 # 정의.
# 클래스의 TreeNode :
# 데프 __init의 __ (자체, X) :
#의 self.val = X
# self.left = 없음
# self.right = 없음
클래스 해결책 :
DEF sortedArrayToBST (자기, nums)
DEF to_bst (nums은 시작, 끝 ) :
시작> 단부 경우 :
없음 리턴
중간 = (+ 시단) // 2
노드의 TreeNode = (nums [미드])
node.left = to_bst (nums 시작, 중간 - 1)
node.right = to_bst (nums을 중간 + 1 단부)
리턴 노드
복귀 to_bst (nums 0 렌 (nums) - 1)
2. 함께 두 숫자
비어 있지 않은 목록이 두 음이 아닌 정수를 표현하기 위해 사용되는 두 우리가 주어진다. 여기서 각각의 비트는 방향의 반대 순서로 저장되며, 이들은 각각의 노드는 하나의 숫자를 저장할 수있다.
우리는이 두 숫자를 추가하면 새 목록을 반환하고 그들을 대표 할 수 있습니다.
당신은 숫자 0에 추가하여,이 두 숫자가 0으로 시작되지 않을 것이라고 가정 할 수있다.
예 :
입력 : (2 -> 4 -> 3) + (5 -> 6 -> 4)
출력 : 7 -> 0 -> 8
원인 : 342 + 465 = 807
출처 : 버튼 (LeetCode) 체재
은 https : 링크 //leetcode-cn.com/problems/add-two-numbers
모든 네트워크에서 공제 저작권. 상업 재판은 승인 된 공식, 비상업적 무단 전재 소스를 표시하시기 바랍니다 문의하시기 바랍니다.
# 2 개의 번호를 함께 (목록)
클래스 ListNode :
는 def __init의 __ (자체, X) :
self.val = X
self.next = 없음
클래스 해결책 :
DEF의 addTwoNumbers (자기, L1, L2)
"" "L1, L2는 "" "ListNode되어
다시 = ListNode (0)
R & LT 재 # = 포인터 리턴 자체에만 반환
0 # 기록이 수행 = 운반
그동안 L1 또는 L2 :
다른 0 l1.val X = L1 IF
Y가 = L2 l2.val IF 0 다른
S와 캐리 = X + Y +
캐리 = S // 10
r.next = ListNode (10 % S)
R & LT r.next =
L1 IF : L1 = l1.next
L2 IF : L2 = l2.next
IF와 캐리> 0 :
r.next ListNode = 1
리턴 re.next