首页 > 代码库 > BST创建
BST创建
思路:把数字排序,排序后数字列,中间点为父节点,左边部分为左子树,右边为右子树。
假设节点定义为:
// Definition for binary treestruct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};
递归的思路实现:
TreeNode *makeArray2BST(int *a,int len){ TreeNode *t; if(len == 0) return NULL; else if(len == 1) { t = new TreeNode(a[0]); }else if(len == 2){ t = new TreeNode(a[1]); t->left = new TreeNode(a[0]); }else{ int n = len/2; t = new TreeNode(a[n]); t->left = makeArray2BST(a,n); t->right = makeArray2BST(a+n+1,len-n-1); } return t;}
BST创建
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。