Leetcode_#108_将有序数组转换成二叉搜索树

原题:#108_将有序数组转换成二叉搜索树

  • 解题思路
    • 根据树的前序遍历+中序遍历可确定一棵树
      • 利用二分递归查找数组可得到所有子树的根节点
    • 根据树的中序遍历+后序遍历可确定一棵树
public TreeNode f (int[] nums) {
    return helper(nums, 0, nums.length);
}
public TreeNode helper(int[] nums, int start, int end) {
    if (start == end) return null;
    int mid = (start + end) / 2;
    TreeNode root = new TreeNode(nums[mid]);
    root.left = helper(nums, start, mid);	//此处始终选择中点作为左子树的根
    root.right = helper(nums, mid + 1, end);
    return root;
}
原创文章 50 获赞 1 访问量 2914

猜你喜欢

转载自blog.csdn.net/u014642412/article/details/105952360
今日推荐