아래 Python 프로그램은 주어진 배열 요소를 높이 균형 이진 검색 트리 (BST)로 변환하고 구성된 BST의 순회를 인쇄합니다. 결과를 배열로 저장할 수 있는지 궁금합니다.
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def array_to_bst(array_nums):
if not array_nums:
return None
mid_num = len(array_nums)//2
node = TreeNode(array_nums[mid_num])
node.left = array_to_bst(array_nums[:mid_num])
node.right = array_to_bst(array_nums[mid_num+1:])
return node
def preOrder(node):
if not node:
return
print(node.val)
preOrder(node.left)
preOrder(node.right)
array_nums = [1,2,3,4,5,6,7]
print("Original array:")
print(array_nums)
result = array_to_bst(array_nums)
print("\nArray to a height balanced BST:")
print(preOrder(result))
preOrder(node)
기능을 다음과 같이 변경하십시오 .
def preOrder(node):
if node is None:
return []
print(node.val)
res = [node.val]
res += preOrder(node.left)
res += preOrder(node.right)
return res
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다