Convert Sorted List to Binary Search Tree LeetCode solution in C++

1
class Solution {
2
public:
3
typedef vector<int>::iterator vecIt;
4
TreeNode *buildTree(vector<int> &listToVec, vecIt start, vecIt end) {
5
if (start >= end) return NULL;
6
vecIt midIt = start + (end - start) / 2;
7
TreeNode *newNode = new TreeNode(*midIt);
8
newNode->left = buildTree(listToVec, start, midIt);
9
newNode->right = buildTree(listToVec, midIt + 1, end);
10
return (newNode);
11
}
12
TreeNode *sortedListToBST(ListNode *head) {
13
vector<int> listToVec;
14
while (head) {
15
listToVec.push_back(head->val);
16
head = head->next;
17
}
18
return (buildTree(listToVec, listToVec.begin(), listToVec.end()));
19
}
20
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0