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-to-binary-search-tree/
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) {}
* };
*/
ListNode* findMiddleNode(ListNode *head, int length) {
if(length <= 0) return NULL;
int mid = (length+1) / 2;
for(int i = 1; i < mid; ++i) head = head->next;
return head;
}
TreeNode* createBST(ListNode *head, int length) {
ListNode *pMid = findMiddleNode(head, length);
TreeNode *root = NULL;
if(pMid) {
root = new TreeNode(pMid->val);
root->left = createBST(head, (length-1) >> 1);
root->right = createBST(pMid->next, length / 2);
}
return root;
}
int getLength(ListNode *head) {
int len = 0;
while(head) { len++; head = head->next; }
return len;
}
class Solution {
public:
TreeNode *sortedListToBST(ListNode *head) {
return createBST(head, getLength(head));
}
};
Convert Sorted Array to Binary Search Tree
OJ: https://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
思想,同上。
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
TreeNode* createBST(vector<int> &num, int l, int h) {
if(l > h) return NULL;
int mid = (l+h)/2;
TreeNode *root = new TreeNode(num[mid]);
root->left = createBST(num, l, mid-1);
root->right = createBST(num, mid+1, h);
return root;
}
class Solution {
public:
TreeNode *sortedArrayToBST(vector<int> &num) {
return createBST(num, 0, num.size()-1);
}
};
34. Convert Sorted List to Binary Search Tree && Convert Sorted Array to Binary Search Tree的更多相关文章
- LeetCode108——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 Array to Binary Search Tree 将有序数组转为二叉搜索树
		
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 这道 ...
 - [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 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 ...
 - LeetCode:Convert Sorted Array to Binary Search Tree,Convert Sorted List to Binary Search Tree
		
LeetCode:Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in asce ...
 - Convert Sorted Array to Binary Search Tree
		
Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...
 - 37. leetcode 108. Convert Sorted Array to Binary Search Tree
		
108. Convert Sorted Array to Binary Search Tree 思路:利用一个有序数组构建一个平衡二叉排序树.直接递归构建,取中间的元素为根节点,然后分别构建左子树和右 ...
 - [LeetCode] 108. Convert Sorted Array to Binary Search Tree ☆(升序数组转换成一个平衡二叉树)
		
108. Convert Sorted Array to Binary Search Tree 描述 Given an array where elements are sorted in ascen ...
 
随机推荐
- UIView及其子类
			
一.UI概述 UI(User Interface):用户界⾯,用户能看到的各种各样的⻚面元素. iOS App = 各种各样的UI控件 + 业务逻辑和算法 二.UIView 在手机上显示的内容都是UI ...
 - 2016 - 1 - 24 CSS初步
			
1.The difference between CSS and HTML HTML document is that it specities the content of the page. An ...
 - php大力力 [043节] 现在要做个删除前的提示功能
			
php大力力 [043节] 现在要做个删除前的提示功能
 - C++类的嵌套(2)-访问权限和调用关系
			
类似于命名空间,一个类也是一个类命名空间.因此类嵌套的作用是帮助实现外层类,并且避免命名冲突. 对于命名空间(不再赘述可以参考<c++ prime plus>),其中定义的变量和函数的作 ...
 - 【转】Flexbox——快速布局神器
			
原文转自:http://www.w3cplus.com/css3/flexbox-basics.html 简介 在很多方面HTML和CSS是一个强大的内容发布机制——易学.灵活和强大.但复杂的布局是他 ...
 - sqlserver查看被锁表、解锁
			
查看别锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.d ...
 - sqlserver08评估期已过的解决方法
			
打开sqlserver出现提示:评估期已过.有关如何升级的测试版软件的信息,请访问http://www.microsoft.com/sql/howtobuy 解决方法如下: 第一步:进入开始菜单--- ...
 - C# button 去边框
			
Button属性里找到FlatStyle属性:Flat FlatAppearance BorderSize:0;
 - 使用JavaScript设置、获取父子页面中的值
			
一:获取父页面中的值 有二种方法windows.open()和windows.showModalDialog() 1.windos.open(URL,name,reatures,replace) 再父 ...
 - jq 文字上下不间断滚动实例
			
<div class="ruzhuright"> <div class="rzcontent"> ...