Convert Sorted List to Binary Search Tree
2015-01-05 09:12
274 查看
/** * 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 { private: vector<ListNode*> ptrs; void buildTree(int start,int end,TreeNode* &parent) { if(start>=end) { return; } int mid=start+(end-start)/2; TreeNode* child=new TreeNode(ptrs[mid]->val); parent=child; buildTree(start,mid,child->left); buildTree(mid+1,end,child->right); } public: TreeNode *sortedListToBST(ListNode *head) { while(head){ ptrs.push_back(head); head=head->next; } if(ptrs.size()==0) { return NULL; } int mid=ptrs.size()/2; TreeNode* root=new TreeNode(ptrs[mid]->val); buildTree(0,mid,root->left); buildTree(mid+1,ptrs.size(),root->right); return root; } };
相关文章推荐
- LeetCode: Convert Sorted List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- 【ATT】Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- [Leetcode]Convert Sorted List to Binary Search Tree
- leetcode 66: Convert Sorted List to Binary Search Tree
- leetcode 66: Convert Sorted List to Binary Search Tree
- leetcode Convert Sorted List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree
- LeetCode: Convert Sorted List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree, Solution
- [Leetcode] Convert Sorted List to Binary Search Tree
- LeetCode:Convert Sorted List to Binary Search Tree
- [LeetCode]Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted Array(List) to Binary Search Tree
- Leetcode: Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree