Solve InterviewCake's second-largest-item-in-bst

Return a function that returns the second largest item in a binary search
tree (i.e. BST).

A BST is a tree where each node has no more than two children (i.e. one left
child and one right child). All of the values in a BST's left subtree must be
less than the value of the root node; all of the values in a BST's right subtree
must be greater than the value of the root node; both left and right subtrees
must also be BSTs themselves.

I solved this problem thrice -- improving the performance profile each time. The
final solution has a runtime complexity of O(n) and a spacetime complexity of
O(1).
This commit is contained in:
William Carroll 2020-03-16 11:45:34 +00:00
parent 56d8d1d7b2
commit 319652fe08
2 changed files with 221 additions and 2 deletions

View file

@ -23,7 +23,7 @@
* Trees and graphs
** DONE Balanced Binary Tree
** DONE Binary Search Tree Checker
** TODO 2nd Largest Item in a Binary Search Tree
** DONE 2nd Largest Item in a Binary Search Tree
** TODO Graph Coloring
** TODO MeshMessage
** TODO Find Repeat, Space Edition BEAST MODE
@ -34,7 +34,7 @@
** TODO The Cake Thief
** DONE Balanced Binary Tree
** DONE Binary Search Tree Checker
** TODO 2nd Largest Item in a Binary Search Tree
** DONE 2nd Largest Item in a Binary Search Tree
* Queues and stacks
** TODO Largest Stack
** TODO Implement A Queue With Two Stacks