标签:二叉树 给定一个有序数组递增 写程序构建一棵具有最小高度的二叉树
给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。
struct Node { int value; Node *left; Node *right; }; void createTree(int a[], int begin, int end, Node* &root, Node *parent, bool leftChild) { if (begin > end) { return; } int mid = begin + (end-begin)/2; Node *p = new Node(); p->value = a[mid]; if (root == NULL) { root = p; } else { if (leftChild) { parent->left = p; } else { parent->right = p; } } if (begin > mid-1) { p->left = NULL; } else { createTree(a, begin, mid-1, root, p, true); } if (mid+1 > end) { p->right = NULL; } else { createTree(a, mid+1, end, root, p, false); } }
给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。
标签:二叉树 给定一个有序数组递增 写程序构建一棵具有最小高度的二叉树
原文地址:http://blog.csdn.net/zeb_perfect/article/details/43237179