转换平衡二叉树

来源:互联网 发布:qq for linux 编辑:程序博客网 时间:2024/05/19 04:05

只是近似。

/** * 一个整数数组,近似转换成一颗平衡二叉树。 * 先排序,然后选取中位数,先序遍历 * */public class BalanceTree {public static Node balance(int[] a, int left, int right){if(left == right){return new Node(a[left]);}if(left > right){return null;}int p = (left+right)/2;Node parent = new Node(a[p]);Node leftChild = balance(a, left, p-1);Node rightChild = balance(a, p+1, right);parent.left = leftChild;parent.right = rightChild;return parent;}/** * @param args */public static void main(String[] args) {int[] a = {1,2,3,4,5,6,7,8,9};Node root = BalanceTree.balance(a, 0, a.length-1);BFS.bfs(root);}}


原创粉丝点击