이의 내가 목록과 같이 있다고 가정 해 봅시다 :이진 트리에 단순 목록으로 변환하는 방법
flat_list = [None, 10, 5, 15, None, None, 11, 22]
내가 아는 자리 잡고 목록에서 트리를 생성하는 알고리즘은 같이 간다 :
def create_tree_from_nested_list(node_list):
if not node_list:
return node_list
d, l, r = node_list
tree = BinaryTree(d)
tree.set_left(create_tree_from_nested_list(l))
tree.set_right(create_tree_from_nested_list(r))
return tree
코드의 출력은 위의 것 :
10
(l) 5
(r) 15
(l) 11
(r) 22
어떻게 나무에 평면 목록에 함수를 만드는 방법에 대해 갈 것이라고 있도록 왼쪽 사람 인덱스 위치 2*i
에 저장되고 올바른 위치는 인덱스 위치 2 * i + 1
에 저장되며 출력은 중첩 목록의 출력과 동일합니다. 어떤 도움을 주셔서 감사합니다.
! getters와 세터와 그만. 이것은 Java가 아닙니다. –
어쨌든, 나는 당신의 질문을 정말로 얻지 못합니다. 예상되는 결과는 무엇입니까? 동등한 중첩 목록은 무엇입니까? –
더 명확히해야한다는 것이 유감입니다. 출력은 중첩 목록과 평면 목록에 대해 동일해야합니다. –