首页 > 代码库 > Convert Sorted List to Balanced Binary Search Tree (BST)

Convert Sorted List to Balanced Binary Search Tree (BST)

(http://leetcode.com/2010/11/convert-sorted-list-to-balanced-binary.html)

Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

Code:

BinaryTree* sortedListToBST(ListNode *& list, int start, int end){    if (start > end)        return NULL;    int mid = start + (end - start) / 2;    BinaryTree* leftChild = sortedListToBST(list, start, mid-1);    BinaryTree* parent = new BinaryTree(list->data);    parent->left = leftChild;    list = list->next;    parent->right = sortedListToBST(list, mid+1, end);    return parent;}BinaryTree* sortedListToBST(ListNode* head, int n){    return sortedListToBST(head, 0, n-1);}

 

Convert Sorted List to Balanced Binary Search Tree (BST)