[数据结构 二叉树]根据各种顺序生成二叉树

根据前序遍历结果生成二叉树

生成平衡二叉树

class Solution {
    public TreeNode balanceBST(List<Integer> nodes) {
        return inBST(nodes,0,nodes.size()-1);
    }
    
    public TreeNode inBST(List<Integer> nodes,int left, int right){
        if(left>right) return null;
        int mid = left + (right - left)/2;
        // 中间的位置选为根结点
        TreeNode root = new TreeNode(nodes.get(mid));
        // 递归产生左子树
        root.left = inBST(nodes,left, mid - 1);
        // 进行右子树的递归构建
        root.right = inBST(nodes,mid+1,right);
        return root;
    } 
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页