數據結構和算法之有序數組轉二叉搜索樹

思路:其實就是個二分查找的過程
代碼

/**
 * 有序數組轉二叉搜索樹
 */
public class ArrayToTree {
    public static class TreeNode {
        int val;
        private TreeNode left;
        private TreeNode right;
        private TreeNode(int x) {
          val = x;
        }
    }

    public static void main(String[] args) {
        int[] ints = new int[5];
        ints[0] = 0;
        ints[1] = 1;
        ints[2] = 2;
        ints[3] = 3;

        TreeNode tree = change(ints);
    }

    public static TreeNode change(int[] ints){
        return getTree(ints, 0 , ints.length - 1);
    }

    public static TreeNode getTree(int[] ints, int head, int tail){
        if(head<=tail){
            int centre = (head + tail)/2;
            TreeNode treeNode = new TreeNode(ints[centre]);
            treeNode.left = getTree(ints, head, centre-1);
            treeNode.right = getTree(ints, centre+1, tail);
        }
        return null;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章