1. Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself).
2. 1) Maximum meetings in one room 2)Bottom view of tree 3) Serialize deserialize binary tree 4) Difference between Virtual destructor in java and c++
3. What is a swaption?
4. Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.
5. Implement Topological Sort. Provide a dry run example to demonstrate its functionality.