BST
我要上岸!!!
这个作者很懒,什么都没留下…
展开
-
Leetcode 230 Kth Smallest Element in a BST
思路由于bst的中序遍历可以得到一个升序的序列,因此对bst进行中序遍历并记录已经遍历过的数字,当遍历过count==k-1时(count初始为0),说明现在正在遍历的是第k小的数字,保存起来等到最后返回即可。小技巧需要注意的是在java的值传递方式,将count和result放到数组中可以随着递归改变值代码/** * Definition for a binary tree node...原创 2019-03-12 05:58:12 · 77 阅读 · 0 评论 -
LeetCode 285 / LintCode 448 Inorder Successor in BST
思路思路1: 直接递归寻找后继,不考虑BST的性质,当作一般的二叉树来考虑。用递归很容易实现。时间复杂度O(n),空间复杂度O(log n)(递归栈)思路2:考虑BST的性质,类似二分的思想(为了O(h)的复杂度)。每次将p与root的值进行对比:(1)p>=root, 则搜索右子树;(2)p<root, 则搜索左子树,后继存在两种可能性:root或者左子树中的某个节点。如果...原创 2019-05-13 13:25:49 · 212 阅读 · 0 评论 -
LeetCode173 / LintCode 86 Binary Search Tree Iterator
思路next使用bst的迭代版中序遍历初始化和next基本组成了bst迭代版的中序遍历复杂度hasNext, next时间复杂度O(1)空间复杂度O(1)代码/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, righ...原创 2019-08-29 23:09:36 · 120 阅读 · 0 评论