我正在经历这个leetcode问题。
https://leetcode.com/problems/kth-smallest-element-in-a-bst/description/
一种解决方案是进行顺序遍历。浏览它并找到最小的第k个。 https://www.programcreek.com/2014/07/leetcode-kth-smallest-element-in-a-bst-java/
我遇到的另一个解决方案是传入int [] {poss,val}并递归
然而,这一切都没有解决后续问题
如果经常修改BST(插入/删除操作)并且您需要经常找到第k个最小值怎么办?您如何优化kthSmallest例程?
任何人都有处理此问题的任何实现。我确实看到了一个使用自定义TreeNode的不完整示例,但由于传入了TreeNode,因此不适合。
答案 0 :(得分:0)
What changes when implementing lazy deletion into a binary search tree exactly? 延迟删除是一种选择。这是什么,你基本上有一个布尔标志值为每个节点指示它是否被删除(但实际上根本没有修改结构。)