有序单向链表转换为平衡搜索二叉树

来源:互联网 发布:怎样使用农村淘宝 编辑:程序博客网 时间:2024/04/18 21:23
class BSTNode{public:BSTNode(int v){value = v;left = NULL;right = NULL;}int value;BSTNode *left;BSTNode *right;};class ListNode{public:ListNode(int v){value = v;left = NULL;right = NULL;}int value;ListNode *left;ListNode *right;};BSTNode* sortedListToBST(ListNode* &list, int left, int right){if (left > right){return NULL;}int mid = left + (right-left)/2;BSTNode *left = sortedListToBST(list, left, mid-1);BSTNode *parent = new BSTNode(list->value);parent->left = left;list = list->next;BSTNode *right = sortedListToBST(list, mid+1, right);parent->right = right;return parent;}BSTNode* sortedListToBST(ListNode *list, int n){return sortedArrayToBST(list, 0, n-1);}

0 0
原创粉丝点击