【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree
LeetCode 108. Convert Sorted Array to Binary Search Tree
Solution1:我的答案
构造二叉树利用递归
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* sortedArrayToBST(vector<int>& nums) {return my_sort(nums);}TreeNode* my_sort(vector<int> nums) {if (nums.size() == 0) return NULL;else if (nums.size() == 1) {TreeNode* root = new TreeNode(nums[0]);return root;}else {int root_index = nums.size()/2;TreeNode* root = new TreeNode(nums[root_index]);vector<int> left_tree, right_tree;for (int i = 0; i < nums.size(); i++) {if (i < root_index)left_tree.push_back(nums[i]);else if (i > root_index)right_tree.push_back(nums[i]);}root->left = my_sort(left_tree);root->right = my_sort(right_tree);return root;}}
};
Solution2:
参考网址:http://www.cnblogs.com/grandyang/p/4295245.html
下面是避免数组元素大量复制的写法,还是这种好 啊
class Solution {
public:TreeNode *sortedArrayToBST(vector<int> &num) {return sortedArrayToBST(num, 0 , num.size() - 1);}TreeNode *sortedArrayToBST(vector<int> &num, int left, int right) {if (left > right) return NULL;int mid = (left + right) / 2;TreeNode *cur = new TreeNode(num[mid]);cur->left = sortedArrayToBST(num, left, mid - 1);cur->right = sortedArrayToBST(num, mid + 1, right);return cur;}
};
【数组递归构造二叉树】LeetCode 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. 将有序数组转换为二叉搜索树(Java)
题目 https://leetcode.com/problems/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 python3 简单题108. Convert Sorted Array to Binary Search Tree
1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第一百零八题 (1)题目 英文: Given an array where elem ...
- 108. Convert Sorted Array to Binary Search Tree
一.题目 1.审题 2.分析 给出一个有序的不重复的整形数组,组成一个二路平衡二叉树(左右子树高度差不超过1). 二.解答 1.思路: 方法一. 采用递归的方式.(像二分查找) ①.为了保持平衡,查找 ...
- LeetCode: 109. Convert Sorted List to Binary Search Tree
题目 Given a singly linked list where elements are sorted in ascending order, convert it to a height b ...
- 【链表递归构造二叉树】LeetCode 109. Convert Sorted List to Binary Search Tree
LeetCode 109. Convert Sorted List to Binary Search Tree Solution1:我的答案 偷鸡摸狗的做法 /*** Definition for s ...
- Convert Sorted Array to Binary Search Tree - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Convert Sorted Array to Binary Search Tree - LeetCode 注意点 不要访问空结点 题目要求的是平衡二叉搜 ...
- 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 ...
最新文章
- shell 生成指定范围随机数与随机字符串 .
- bfgs算法matlab程序,BFGS优化算法及应用实例.docx
- linux笔记本上安装了双显卡驱动(intel+nvidia)
- python编程语言是什么-什么是编程语言,什么是Python解释器
- Android输入系统(三)InputReader的加工类型和InputDispatcher的分发过程
- Java泛型总结--转
- Ubuntu 14.04 hadoop单机安装
- 同一数据库如果处理多个完全不同的业务?
- 卡西欧82es计算机怎么玩游戏,卡西欧计算器fx82es-如何使用卡西欧fx-82es计算器计算矩阵 – 手机爱问...
- ubuntu部署tomcat
- 现在当兵有什么待遇复原以后_当兵多少年最好呢?这些关键点会影响在部队发展,很重要、很实用...
- 不规矩的xml与JAVA对象互相转换的小技巧-使用Marshaller
- 基于ssm整合的web考勤管理系统
- linux的可执行文件是什么后缀
- TCP / UDP测试工具——tcpudptest使用总结
- 操作系统ucore lab1
- php 采集qq空间,php批量抓取QQ空间相册链接
- 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
- python爬取裁判文书并分析_裁判文书网爬虫攻克
- 男生停止长高的迹象是真的吗?
热门文章
- 相机标定(二)—— 投影变换相关基础概述
- pcb可以给用户进程读吗_「TCP/UDP」一个端口号可以同时被两个进程绑定吗? - 一口Linux...
- 华为鸿蒙os和麒麟os区别,麒麟、鸿蒙皆自研,为何华为不像苹果将系统同时推送?...
- hbase 预分区_hbase的rowKey设计原则
- python随机生成中文句子_python – 如何使用NLTK从诱导语法中生成句子?
- java随机加法题_Java简单随机加法算式
- python将对象放入列表_将所有python-rom对象放入列表
- 空军军医大学计算机复试线,2021空军军医大学考研国家线公布时间_国家线是多少分...
- android 链式结构,Android 架构师之路10 设计模式之责任链模式
- sketchup作品_建环学院学生期末作品展第六站计算机辅助设计sketchup作业