포스트 오더 순회를 마치면 정렬 된 배열에서만 전체 이진 트리 (개수 (정점 수 = 2^n-1))를 복원 할 수 있습니까? 내가 제안 알고리즘은 단지 postorder 통과하기 위해, 매우 간단합니다 : 는 잘 가서 좌회전 current_vertex = 배열 [내가 ++] // 초기화 된 i = 0 작업을 수행해야합니까? binary tree의 post
이다 내가 주에서이 함수를 (호출 할)하지만 문제는 간단한에서 노드 유형 인수 를받는 동안 어떤 매개 변수 내가 전달해야한다는 것입니다 함수를 호출하는 방법을 모른다 나는 단지 내 나무의 높이를보고 싶다. 그래서 높이는 노드 유형 매개 변수를 필요로의 함수 호출시 직면하는 오류를 제거, 나를 도와 그리고 내가 통과해야하는지 아무 생각하시기 바랍니다. 여기에
이진 검색 트리에서 후행 노드와 선행 노드를 가져 오는 방법이 있지만 코드에서 버그를 찾는 데 문제가 있습니다. 다음 키가있는 노드를 추가한다고 가정 해보십시오 : "C", "B" 및 "K". 내가 "B" 분명히 더 전임자 또는 후임자가없는 그것을 추가하면 "C" "some data 1"
"B" "some data 2"
"K" "some data 3"
재귀를 사용하여 BST에서 노드 수를 찾으려고합니다. 여기 내 코드는 struct Node{
int key;
struct Node* left;
struct Node* right;
Node(){
int key = 0;
struct Node* left = nullptr;
struct Node
지금 내가하려고하는 것은 내 이진 검색 트리 (BST)에서 반복 횟수의 최소값을 찾는 것입니다. 값을 삽입 할 때 BST가 정상이지만 두 번 동일한 값을 얻으면 그 대신 트리가 종속되지 않는 반복 카운트 값이 증가합니다 (따라서 나는 할 수 없습니다 그냥 최소값을 위해 왼쪽으로 가라.) 최소값을 얻으려고했지만 항상 부족합니다. 작은려고 기능은 다음 find
나는이 사방 검색하지만, 단 하나 개의 방법이있다 : ( 가 전임자를 삭제 을 이전 (또는 후속)와 노드를 교체 삭제할 노드의 이전 (또는 후계자를) 찾을 수 또는 후계자) 하지만 난 우리가이 방법으로 할 수 있다고 생각 : 삭제할 노드에 오른쪽 (또는 왼쪽) 요소를 삽입합니다. 즉 요소를 바꿔 오른쪽 (또는 왼쪽) 요소로 삭제하고 리프가 잎을 발견하고 잎
단어 목록을 저장하는 BST를 구현하려고합니다. 순회하고 순서대로 인쇄하려고하면 목록이 알파벳 순으로 인쇄되기 때문에 트리 구조가 정확하다는 것을 알고 있습니다. 그러나 트리에서 요소를 찾는 내 검색 함수는 매번 false를 반환합니다. func search(searchValue: String) -> Bool? {
if searchValue ==
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class Solution {
public int maxDepth(TreeNode root) {
TreeNode f
원하는 노드를 삭제할 수없는 이유는 무엇입니까? 예를 들어, 1,2,3,4,5 순으로 항목이있는 트리를 만들고 내 delete 메소드를 사용하여 3을 삭제하면 3 이하를 포함하는 노드가 3 대신 삭제되고 4,5가됩니다. 선주문으로 모든 노드를 다시 인쇄하면 도움이됩니다. import java.util.Scanner; 클래스 TNODE { protected