将有序数组转变成平衡二叉查找树
2017-01-28 21:40
363 查看
import java.util.*; public class BinarySearchTreeTest { private static LinkedList<Integer> list = null; public static void convertToBst(LinkedList<Integer> s){ list = s; TreeNode root = convertToBstHelp(0, list.size() -1); BinaryTreeTest.preOrderTraverse(root); } public static TreeNode convertToBstHelp(int start, int end){ if (start > end) return null; int mid = (end + start)/2; TreeNode root = new TreeNode(list.get(mid)); root.left = convertToBstHelp(start, mid -1); root.right = convertToBstHelp(mid + 1, end); return root; } public static void main(String[] args){ LinkedList<Integer> s = new LinkedList<Integer>(); for(int i = 0; i < 7; i++){ s.add(i); } for(int i : s) System.out.println(i); convertToBst(s); } }
相关文章推荐
- Leetcode 108 Convert Sorted Array to Binary Search Tree 有序数组构造平衡二叉查找树
- Convert Sorted Array to Binary Search Tree (递增数组建高度平衡的二叉查找树)【leetcode】
- 根据有序数组构造二叉查找树 Convert Sorted Array to Binary Search Tree
- 通过有序数组生成平衡搜索二叉树
- 将排序数组转为平衡二叉查找树
- 给定一个有序的数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉查找树?
- 程序员面试金典: 9.4树与图 4.3给定一个有序整数数组,元素各不相同且按升序排列,创建一颗高度最小的二叉查找树。 ---快速解法
- Convert Sorted Array to Binary Search Tree 将有序数组转化为平衡二叉排序树(重重)
- 有序数组转为二叉查找树
- 有序数组创建高度最小的二叉查找树
- 有序数组创建一棵平衡的BST
- 二叉查找树转变为有序双向链表
- 二叉树问题---通过有序数组生成平衡搜索二叉树
- 程序员面试金典: 9.4树与图 4.3给定一个有序整数数组,元素各不相同且按升序排列,创建一颗高度最小的二叉查找树。
- 给定有序数组,创建高度最小的二叉查找树
- 给定一个递增有序数组,要求构建一棵具有最小高度的二叉查找树
- 【LeetCode】108. Convert Sorted Array to Binary Search Tree-有序数组转换为平衡二叉搜索树(平衡二叉排序树)
- 【Java】给定一个有序整数数组,元素各不相同且按照升序排列,编写一个算法,创建一个高度最小的二叉查找树
- 算法:有序数组转为平衡的二叉搜索树
- 二叉查找树转变为有序双向链表