108. Convert Sorted Array to Binary Search Tree
一、题目
1、审题
2、分析
给出一个有序的不重复的整形数组,组成一个二路平衡二叉树(左右子树高度差不超过1)。
二、解答
1、思路:
方法一、
采用递归的方式。(像二分查找)
①、为了保持平衡,查找数组的下标中间的数 nums[mid],作为 root;
②、(0, mid - 1) 作为 root 的左子树,(mid+1, end) 作为root 的右子树;
③、重复 ①、②操作。
public TreeNode sortedArrayToBST(int[] nums) {return helperSortedArrayToBST(nums, 0, nums.length - 1);}private TreeNode helperSortedArrayToBST(int[] nums, int start, int end) {if(start > end)return null;int median = (start + end) / 2;TreeNode root = new TreeNode(nums[median]);root.left = helperSortedArrayToBST(nums, start, median - 1);root.right = helperSortedArrayToBST(nums, median + 1, end);return root;}
方法二、
采用循环迭代方式。
①、采用一个队列存储临时节点 node,一个队列存储数组此时的开始(start)、结束(end)下标。
② 若 start <= end,则 node 节点值 为 nums[(start + end)/2];
public TreeNode sortedArrayToBST(int[] nums) {int len = nums.length;if ( len == 0 ) { return null; }// 0 as a placeholderTreeNode head = new TreeNode(0); Queue<TreeNode> nodeStack = new LinkedList<>();nodeStack.add(head);Queue<Integer> indexStack = new LinkedList<>();indexStack.add(0);indexStack.add(len-1);while(!nodeStack.isEmpty()) {TreeNode currNode = nodeStack.poll();int left = indexStack.poll();int right = indexStack.poll();int mid = (left + right) / 2;currNode.val = nums[mid];if(left <= mid - 1) {currNode.left = new TreeNode(0);nodeStack.add(currNode.left);indexStack.add(left);indexStack.add(mid - 1);}if(right >= mid + 1) {currNode.right = new TreeNode(0);nodeStack.add(currNode.right);indexStack.add(mid+1);indexStack.add(right);}}return head;}
转载于:https://www.cnblogs.com/skillking/p/9734446.html
108. Convert Sorted Array to Binary Search Tree相关推荐
- 【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree
LeetCode 108. Convert Sorted Array to Binary Search Tree Solution1:我的答案 构造二叉树利用递归 /*** Definition fo ...
- 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
题目: 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 ...
- leetcode 108. Convert Sorted Array to Binary Search Tree | 108. 将有序数组转换为二叉搜索树(Java)
题目 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 题解 经典二分,不解释了,直接看代码 /*** ...
- 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 ...
- Convert Sorted Array to Binary Search Tree With Minimal Height
Given a sorted (increasing order) array, Convert it to create a binary tree with minimal height. Exa ...
- [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. Hi ...
最新文章
- Sahi (2) —— https/SSL配置(102 Tutorial)
- 面试笔记——C++11新特性
- 二十一、“一枝一叶一花语,一生一世一英名。”(2021.5.29)
- 智慧树python答案内蒙古科技大学_2020年_知到_打开企业形象设计之门(内蒙古科技大学)_答案护理人文修养_智慧树_期末答案...
- 算法 --- reduce的使用.
- 大叔手记(12):我的一次面试经历(谈大叔如何应对面试官)
- discuz x2.5插件开发傻瓜图文教程,用demo说话
- 工信部:不得利用“携号转网”实施恶性竞争行为
- 怎样在Xcode 4下编译发布与提交App到AppStore?(转)
- 朗读评价语言集锦_表扬朗读好的评语简短
- 使用微信支付购买《微信公众平台最佳实践》
- html菜单不动属性,html5规定元素的上下文菜单属性contextmenu
- (一) MySQL学习笔记:MySQL安装图解
- 动力学系统simulink建模分析
- 记参加2008磨房深圳百公里活动
- 邮件监控云上脚本执行进度
- json标准格式举例_json几个小例子
- 【计算机组成原理】计算机系统结构笔记:合集
- 计算机键盘fn,USB键盘Fn功能键调节方法
- java months between,ORACLE函数MONTHS_BETWEEN
热门文章
- 缓存服务器协议有哪些,HTTP 协议的缓存机制概述
- 服务器端使用sendRedirect跳转到客户端异常
- 计算机mooc操作测试视频,计算机基础课MOOC视频的制作方法.doc
- html导航栏代码跳转,微信小程序自定义底部导航栏tabBar(含跳转页面wx.navigateTo)...
- list对oracle结果集排序了_详解SQL窗口函数和分组排序函数
- linux安装python_VTK:华为笔记本电脑+深度deepin-linux+python下安装和入门
- mysql5.7重置密码windows_MySql 5.7 for Windows 重置root密码
- php redis新增数据类型,Redis有哪几种数据类型
- kafka 脚本发送_NWPC消息平台:在ecFlow系统中发送产品事件消息
- mysql子查询的方式_分布式系统中一种迭代处理MYSQL子查询的方法