leetcode__Convert Sorted List to Binary Search Tree
Convert Sorted List to Binary Search Tree
Total Accepted: 12283 Total
Submissions: 45910My Submissions
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
总结:这个是网上找的,还不明确为什么是以下这个样子,去掉&,就出错
ListNode *&node
TreeNode *sortedListToBST(ListNode *head)
{
int len = 0;
ListNode * node = head;
while (node != NULL)
{
node = node->next;
len++;
}
return buildTree(head, 0, len-1);
} TreeNode *buildTree(ListNode *&node, int start, int end)
{
if (start > end) return NULL;
int mid = start + (end - start)/2;
TreeNode *left = buildTree(node, start, mid-1);
TreeNode *root = new TreeNode(node->val);
root->left = left;
node = node->next;
root->right = buildTree(node, mid+1, end);
return root;
}
总结:这个開始的时候有点问题,改动了一下
TreeNode *sortedListToBST(ListNode *head)
{
vector<TreeNode*> treeNodes;
if(head == NULL) return NULL;
while (head != NULL)
{
TreeNode *node = new TreeNode(head->val);
treeNodes.push_back(node);
head = head->next;
}
return genBST(0, treeNodes.size()-1, treeNodes);
} TreeNode* genBST(int start, int end, vector<TreeNode*> &treeNodes)
{
if (start == end) return treeNodes[start];
else if (start+1 == end)
{
treeNodes[start]->right = treeNodes[end];
return treeNodes[start];
} int mid = (start+end)/2;
TreeNode* root = treeNodes[mid];
root->left = genBST(start, mid-1, treeNodes);
root->right = genBST(mid+1, end, treeNodes);
return root;
}
总结:上面这个代码跟我參考得到的思想一致,可是我的是time limit
TreeNode *sortedListToBST(ListNode *head) {
int len = 0;
ListNode *node = head;
while(node)
{
len++;
node = node->next;
}
return BuildTree(head,1,len);
} TreeNode *BuildTree(ListNode *node,int start,int end)
{
if(start > end) return NULL;
int mid = start + (end-start)/2;
ListNode *mi_node = node;
for(int i=1;i<mid;i++)
{
mi_node = mi_node->next;
} TreeNode *root = new TreeNode(mi_node->val);
root->left = BuildTree(node,start,mid-1);
root->right = BuildTree(node,mid+1,end);
return root;
}
leetcode__Convert Sorted List to Binary Search Tree的更多相关文章
- Leetcode: Convert sorted list to binary search tree (No. 109)
Sept. 22, 2015 学一道算法题, 经常回顾一下. 第二次重温, 决定增加一些图片, 帮助自己记忆. 在网上找他人的资料, 不如自己动手. 把从底向上树的算法搞通俗一些. 先做一个例子: 9 ...
- [LeetCode] Convert Sorted List to Binary Search Tree 将有序链表转为二叉搜索树
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- [LeetCode] Convert Sorted Array to Binary Search Tree 将有序数组转为二叉搜索树
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 这道 ...
- leetcode -- Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- [Leetcode][JAVA] Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...
- 【leetcode】Convert Sorted List to Binary Search Tree
Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in as ...
- 【leetcode】Convert Sorted Array to Binary Search Tree
Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...
- 【LeetCode OJ】Convert Sorted Array to Binary Search Tree
Problem Link: http://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ Same idea ...
- 34. Convert Sorted List to Binary Search Tree && Convert Sorted Array to Binary Search Tree
Convert Sorted List to Binary Search Tree OJ: https://oj.leetcode.com/problems/convert-sorted-list-t ...
随机推荐
- POJ 1836 Alignment 水DP
题目: http://poj.org/problem?id=1836 没读懂题,以为身高不能有相同的,没想到排中间的两个身高是可以相同的.. #include <stdio.h> #inc ...
- DateTimePicker:jQuery日期和时间插件
点击在线预览效果 点击下载该插件 下面是效果截图:
- 转:在Eclipse中进行C/C++开发的配置方法(20140721最新版)
http://blog.csdn.net/baimafujinji/article/details/38026421 Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它 ...
- 更改JENKINS主目录
在部署时,发现直接启动WAR包没办法改主目录,而此主目录空间太小, 唯有安装TOMCAT之后进行更改... 参考文档: 工作中,由于Jenkins默认的主目录空间太小,导致需要将Jenkins默认的主 ...
- NAND FLASH的容量、特性、市场和应用
NAND Flash的容量 一直到2006年,MLC芯片的容量每年都成倍数增长:由于NAND Flash的制程升级的挑战越来越大,所以NAND Flash之后的容量成倍增长所需要的时间也在不断增加 ...
- android Theme使用三
☆ obtainStyledAttributes参数说明 和使用说明 1) obtainStyledAttributes(int[]attrs) int[] attrs返回的是attrs.xml里一 ...
- Android推送通知指南
Android推送通知指南 在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是 ...
- (转载)MySql按日期进行统计(前一天、本周、某一天)
(转载)http://www.yovisun.com/mysql-date-statistics.html 在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_t ...
- 动态规划(树形DP):LNOI 2016 侦察守卫
Sample Input 12 2 8 9 12 6 1 1 5 1 4 8 10 6 10 1 2 3 5 6 7 8 9 10 11 1 3 2 3 3 4 4 5 4 6 4 7 7 8 8 9 ...
- ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender
(原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人 ...