Tree
- Find the height of a tree.
 - Find the longest path from the root to leaf in a tree.
 - Find the deepest left leaf of a tree.
 - Print all paths of a binary tree.
 - Second largest element of a BST.
 - Given a binary tree and two nodes, how to find the common ancestor of the two nodes?
 - Find the lowest common ancestor of two nodes in a binary search tree.
 - Print the nodes in an n-ary tree level by level, one printed line per level.
 - Given a directory of files and folders (and relevant functions), how would you parse through it to find equivalent files?
 - Write a basic file system and implement the commands ls, pwd, mkdir, create, rm, cd, cat, mv.
 - Compute the intersection of two binary search trees.
 - Given a binary tree, output all the node to leaf paths of it.
 - Given a string of characters without spaces, is there a way to break the string into valid words without leftover characters?
 - Print a binary tree level by level.
 - Determine if a binary tree is “complete” (i.e, if all leaf nodes were either at the maximum depth or max depth-1, and were ‘pressed’ along the left side of the tree).
 - Find the longest path in a binary tree. The path may start and end at any node.
 - Determine if a binary tree is a BST.
 - Given a binary tree, serialize it into a string. Then deserialize it.
 - Print a binary tree by column.
 - Given a node, find the next element in a BST.
 - Find the shortest subtree that consist of all the deepest nodes. The tree is not binary.
 - Print out the sum of each row in a binary tree.
 - Pretty print a JSON object.
 - Convert a binary tree to a doubly circular linked list.
 - Find the second largest number in a binary tree.
 - Given a tree, find the longest branch.
 - Convert a tree to a linked list.
 - Given two trees, write code to find out if tree A is a subtree of tree B.
 - Deepest node in a tree.