题目

https://leetcode.com/problems/construct-binary-search-tree-from-preorder-traversal/

题解

好题。

我知道需要用到 BST 的性质,但是没想出来优雅的方法,看了答案。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode bstFromPreorder(int[] preorder) {return buildTree(preorder, Integer.MAX_VALUE);}int i = 0;public TreeNode buildTree(int[] preOrder, int bound) {if (i == preOrder.length || preOrder[i] > bound) return null;TreeNode node = new TreeNode(preOrder[i++]);node.left = buildTree(preOrder, node.val);node.right = buildTree(preOrder, bound);return node;}
}

leetcode 1008. Construct Binary Search Tree from Preorder Traversal | 1008. 前序遍历构造二叉搜索树(Java)相关推荐

  1. 1043 Is It a Binary Search Tree (25 分)【难度: 中 / 知识点: 构造二叉搜索树(BST) 】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856 首先二叉搜索树是左子树的元素都小于根,左子树 ...

  2. 1008. 前序遍历构造二叉搜索树

    文章目录 1008. 前序遍历构造二叉搜索树 一.解题思路 特殊边界 二.使用单调栈优化 1008. 前序遍历构造二叉搜索树 给定一个整数数组,它表示BST(即 二叉搜索树 )的 先序遍历 ,构造树并 ...

  3. 1064 Complete Binary Search Tree (30 分)【难度: 一般 / 知识点: 完全二叉搜索树】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805407749357568 二叉搜索数的中序遍历是有序的.故先将权值排序 ...

  4. 快到十月份了希望到时候中期通过并拿到offer,恐惧又憧憬未来的小黑的leetcode之旅:1008. 前序遍历构造二叉搜索树 三轮面试通过。准备和老黑们和阿黄吃海底捞~

    小黑做法 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, r ...

  5. 1099 Build A Binary Search Tree (30 分)【难度: 一般 / 知识点: 建立二叉搜索树】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805367987355648 首先: 要知道二叉搜索树的中序遍历是有序的 ...

  6. LeetCode 255. 验证前序遍历序列二叉搜索树(单调栈)*

    文章目录 1. 题目 2. 解题 2.1 递归超时解 2.2 单调栈 1. 题目 给定一个整数数组,你需要验证它是否是一个二叉搜索树正确的先序遍历序列. 你可以假定该序列中的数都是不相同的. 参考以下 ...

  7. LeetCode 99. Recover Binary Search Tree

    LeetCode 99. Recover Binary Search Tree 刚看到这个题真是一脸懵逼啊... 博客转载自:http://www.cnblogs.com/grandyang/p/42 ...

  8. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

  9. 《LeetCode力扣练习》第96题 不同的二叉搜索树 Java

    <LeetCode力扣练习>第96题 不同的二叉搜索树 Java 一.资源 题目: 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回 ...

最新文章

  1. jquery源码 DOM加载
  2. python语言程序设计慕课_中国大学MOOC(慕课)_Python语言程序设计基础_试题及答案...
  3. caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)
  4. 【转】4.2SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 2)
  5. python循环for...in_python循环while和forin实例
  6. lintcode 中等题:Single number III 落单的数III
  7. 4.openSession() 、 getCurrentSession()与session上下文
  8. 一只老猴子说的话,太经典了!
  9. ise 时钟约束_ISE时序约束笔记2——Global Timing Constraints
  10. (转载)C中实参与形参的“值传递”只能“单向传送”(透彻的理解)
  11. bc -- The Linux Command-line Calculator
  12. Struts2,在Action中使用session
  13. mac下cordova的ios-deploy安装问题
  14. 2021SC@SDUSC Zxing开源代码(十六)PDF417二维码(二)
  15. 【图像压缩】基于PCNN实现图像的压缩重建附matlab代码
  16. 粒子滤波算法matlab代码,粒子滤波算法原理及Matlab程序(专题).ppt
  17. gVim配色和字体选择
  18. 产品设计 - AARRR模型,增长和变现
  19. iPhone通讯录导入及备份方法
  20. Go语言使用谷歌浏览器打开指定网址

热门文章

  1. CodeForces - 1333C Eugene and an array(尺取)
  2. HihoCoder - 1457 后缀自动机四·重复旋律7(后缀自动机)
  3. Linux服务-telnet服务部署(配置允许root登录)
  4. android判断参数非空,Android Studio注释模板Live Templates参数获取不到为null的一些
  5. 实例演示使用HiBench对Hadoop集群进行基准测试
  6. 22.循环控制.rs
  7. Lua和C++交互详细总结
  8. C++的深拷贝与浅拷贝
  9. 利用小工具instsrv和srvany 创建windows服务
  10. c++ template(10)类型函数