通过有序数组生成平衡搜索二叉树

2018年6月30日 17点热度 0条评论 来源: wzc2608
#include "Tree.h"
using namespace std;

Node* genera(int* sortArr, int start, int end)
{
    if(start > end)
        return nullptr;
    int mid = (start + end) / 2;
    Node* head = new Node(sortArr[mid]);
    head->left = genera(sortArr, start, mid - 1);
    head->right = genera(sortArr, mid + 1, end);
    return head;
}
Node* generateTree(int* sortArr, int length)
{
    if(sortArr == nullptr)
        return nullptr;
    return genera(sortArr, 0, length - 1);
}

int main()
{
    int arr[] = {
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    Node* head = generateTree(arr, sizeof(arr)/sizeof(int));
    Print(head);
}
    原文作者:wzc2608
    原文地址: https://blog.csdn.net/wzc2608/article/details/80870241
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。