Leetcode-Convert Sorted List to Binary Search Tree

来源:互联网 发布:淘宝小视频制作 编辑:程序博客网 时间:2024/05/16 12:30

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

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; *//** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode *vectorToBST(vector<int>&a, int start, int end)    {        if(start>end)            return NULL;        int mid = (start+end)/2;        TreeNode *Thead = new TreeNode(a[mid]);        Thead->left  = vectorToBST(a,start,mid-1);        Thead->right = vectorToBST(a,mid+1,end);        return Thead;    }    TreeNode *sortedListToBST(ListNode *head)     {        if(NULL==head)            return NULL;        if(NULL==head->next)        {             TreeNode *Thead = new TreeNode(head->val);             return Thead;        }        vector<int>valVec;        valVec.clear();        while(head)        {            valVec.push_back(head->val);            head = head->next;        }        return vectorToBST(valVec,0,valVec.size()-1);    }};

i dont know what's the usage of "sorted List",

unsorted also be ok

0 0
原创粉丝点击