leetcode 108. Convert Sorted Array to Binary Search Tree 、109. Convert Sorted List to Binary Search Tree
108. Convert Sorted Array to Binary Search Tree
这个题使用二分查找,主要要注意边界条件。
如果left > right,就返回NULL。每次更新的时候是mid-1,mid+1。
自己推一下基本就可以验证了。
class Solution {
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
return ToBST(nums,,nums.size() - );
}
TreeNode* ToBST(vector<int>& nums,int start,int end){
if(start > end)
return NULL;
int mid = start + (end - start)/;
TreeNode* root = new TreeNode(nums[mid]);
root->left = ToBST(nums,start,mid-);
root->right = ToBST(nums,mid+,end);
return root;
}
};
109. Convert Sorted List to Binary Search Tree
https://www.cnblogs.com/grandyang/p/4295618.html
这个题还是用二分查找,每次用双指针找中间的位置,然后递归。
注意end节点是NULL,并且每次中间的位置mid也会成为左子树的end节点。
class Solution {
public:
TreeNode* sortedListToBST(ListNode* head) {
return sortedList(head,NULL);
}
TreeNode* sortedList(ListNode* start,ListNode* end){
if(start == end)
return NULL;
ListNode* slow = start;
ListNode* fast = start;
while(fast->next != end && fast->next->next != end){
slow = slow->next;
fast = fast->next->next;
}
TreeNode* mid = new TreeNode(slow->val);
mid->left = sortedList(start,slow);
mid->right = sortedList(slow->next,end);
return mid;
}
};
leetcode 108. Convert Sorted Array to Binary Search Tree 、109. Convert Sorted List to Binary Search Tree的更多相关文章
- Lowest Common Ancestor of a Binary Search Tree、Lowest Common Ancestor of a Binary Search Tree
1.Lowest Common Ancestor of a Binary Search Tree Total Accepted: 42225 Total Submissions: 111243 Dif ...
- Leetcode: Convert sorted list to binary search tree (No. 109)
Sept. 22, 2015 学一道算法题, 经常回顾一下. 第二次重温, 决定增加一些图片, 帮助自己记忆. 在网上找他人的资料, 不如自己动手. 把从底向上树的算法搞通俗一些. 先做一个例子: 9 ...
- 【LeetCode】81. Search in Rotated Sorted Array II (2 solutions)
Search in Rotated Sorted Array II Follow up for "Search in Rotated Sorted Array":What if d ...
- Java for LeetCode 081 Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- 62. Search in Rotated Sorted Array【medium】
62. Search in Rotated Sorted Array[medium] Suppose a sorted array is rotated at some pivot unknown t ...
- LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
108. 将有序数组转换为二叉搜索树 108. Convert Sorted Array to Binary Search Tree 题目描述 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索 ...
- 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 (有序数组转化为二叉搜索树)
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题目 ...
- [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 ...
随机推荐
- Django之简介
一.MVC模型与MTV模型 MVC模型就是Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起 ...
- cdh的web管理界面503
503 Service Unavailable No server is available to handle this request. 重启 agent 以及 server
- shell 文本替换 ---出现--- sed:-e 表达式 #1,字符 8:“s”的未知选项
需要替换的行为: monitor.url=http://192.168.25.100:8443/rest 查询资料得知,报错是因为替换的字符串包含有分隔符/ 所以这行改一下分隔符就可以解决问题了 ( ...
- socket常见选项之SO_REUSEADDR,SO_REUSEPORT
目录 SO_REUSEADDR time-wait SO_REUSEPORT SO_REUSEADDR 一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即 ...
- JDK源码那些事儿之并发ConcurrentHashMap下篇
上一篇文章已经就ConcurrentHashMap进行了部分说明,介绍了其中涉及的常量和变量的含义,有些部分需要结合方法源码来理解,今天这篇文章就继续讲解并发ConcurrentHashMap 前言 ...
- 四舍五入toFoxed方法
四舍五入的方法: Number.prototype.toFixed = function (n) { if (n > 20 || n < 0) { throw new RangeError ...
- 进程间的通信----队列queue
import multiprocessing def download_from_web(q): """下载数据""" # 模拟下载数据 d ...
- 重启crond服务
键入“cd /etc/init.d”,进入该目录键入“./crond restart”,重启crond服务
- 学到了林海峰,武沛齐讲的Day19 迭代细讲
在家加1个月学了8day的课 出差6天看了8day的课..说明再忙也是可以挤挤多学习的. 广州出差最后两天没学习.一天做车,一天做公司的事...4天就过去了. 老师讲的包子和鸡蛋需求不好...讲的有 ...
- Nginx设置禁止通过IP访问服务器并且只能通过指定域名访问
为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,需要在nginx上设置禁止通过IP访问服务器,只能通过域名访问. 最关键的一点是,在server的设置里面添加这么一行: liste ...