首页 > 其他 > 详细

109.Convert Sorted List to Binary Search Tree

时间:2016-01-06 17:37:38      阅读:113      评论:0      收藏:0      [点我收藏+]

问题:

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

思路:先遍历一遍链表,将值存入一个vector中,再讲vector中有序数据构建平衡二叉搜索树。

代码:

 1 TreeNode* sortedListToBST(ListNode* head)
 2 {
 3     vector<int> nums;
 4     while(head!=NULL)
 5     {
 6         nums.push_back(head->val);
 7         head=head->next;
 8     }
 9     return solve(nums,0,nums.size()-1);
10 }
11 
12 TreeNode* solve(vector<int>& nums,int low,int high)
13 {
14     if (low>high)
15         return NULL;
16     int mid=(low+high)/2;
17     TreeNode* root=new TreeNode(nums[mid]);
18 
19     root->left=solve(nums,low,mid-1);
20     root->right=solve(nums,mid+1,high);
21 
22     return root;
23 }

 

109.Convert Sorted List to Binary Search Tree

原文:http://www.cnblogs.com/zhang-hill/p/5106029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!