Convert Sorted Array to Binary Search Tree 把一个有序数组转换成BST @LeetCode
来源:互联网 发布:windows me 系统安装 编辑:程序博客网 时间:2024/06/05 17:40
题目:
给定一个有序的数组,要求转换为BST
思路:
递归。
每次找到数组中值作为BST的root,然后递归处理左半数组和右半数组分别作为左右子树
package Level2;import Utility.TreeNode;/** * Convert Sorted Array to Binary Search Tree * * Given an array where elements are sorted in ascending order, convert it to a height balanced BST. */public class S108 {public static void main(String[] args) {int[] num = {1,3};TreeNode n = sortedArrayToBST(num);n.print();}public static TreeNode sortedArrayToBST(int[] num) {return sortedArrayToBSTRec(num, 0, num.length-1); }// 二分查找节点值,并递归创建节点private static TreeNode sortedArrayToBSTRec(int[] num, int low, int high){if(low > high){return null;}int mid = low + (high-low)/2;// 找到中值TreeNode root = new TreeNode(num[mid]);// 创建根节点 root.left = sortedArrayToBSTRec(num, low, mid-1);// 递归创建左子树和右子树 root.right = sortedArrayToBSTRec(num, mid+1, high);return root;}}
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode sortedArrayToBST(int[] num) { return rec(num, 0, num.length-1); } public TreeNode rec(int[] num, int low, int high){ if(low > high){ return null; } int mid = low + (high-low)/2; TreeNode root = new TreeNode(num[mid]); root.left = rec(num, low, mid-1); root.right = rec(num, mid+1, high); return root; }}
- Convert Sorted Array to Binary Search Tree 把一个有序数组转换成BST @LeetCode
- [LeetCode]Convert Sorted Array to Binary Search Tree 将有序数组转换成BST
- Leetcode Convert Sorted Array to Binary Search Tree 有序数组转换成二叉搜索树BST
- Leetcode 108. Convert Sorted Array to Binary Search Tree 有序数组转化BST 解题报告
- 108. Convert Sorted Array to Binary Search Tree(和把一个单链表转换成BST树的思想一致)
- LeetCode | Convert Sorted Array to Binary Search Tree(有序数组转换成平衡二叉树搜索树)
- Convert Sorted List to Binary Search Tree 把有序链表转为BST@LeetCode
- [leetcode]Convert Sorted Array to Balanced Binary Search Tree (BST)
- 【Leetcode】Convert Sorted Array to Binary Search Tree (BST)
- leetCode 108.Convert Sorted Array to Binary Search Tree(将排序数组转换为BST) 解题思路和方法
- LeetCode OJ 之 Convert Sorted Array to Binary Search Tree(把有序数组转化为二叉搜索树)
- 有序数组转换为平衡二叉搜索树(Convert Sorted Array to Binary Search Tree)
- 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
- Leetcode Convert Sorted List to Binary Search Tree 把有序链表转换成二叉搜索树
- 108.Convert Sorted Array to Binary Search Tree (将有序数组转化成二叉排序树)
- LeetCode 108. Convert Sorted Array to Binary Search Tree(数组转换为二叉搜索树)
- 所以他很清楚
- GPS定位之非差,单差,双差
- Java基础(十二)——IO流
- 二叉树的各种建立方法及C++实现
- Java基础(十三)——网络编程
- Convert Sorted Array to Binary Search Tree 把一个有序数组转换成BST @LeetCode
- Callable,Runnable比较及用法
- C/C++编程规范
- sed 和 awk的使用
- Future的使用
- 关于汉字的编程
- PHP中超全局变量$GLOBALS和global的区别
- 16进制串转数值数组Hexstr2Array
- C++实现二叉树的递归和非递归遍历方法