In imperative settings, a linked-list may be corrupted, that it is circular. In such list, some node
points back to previous one. The normal iteration ends up infinite looping.
1. Write a program to detect if a linked-list is circular;
2. Write a program to find the node where the loop starts (the node being pointed by two precedents).

n[1] -> n[2] -> ... n[i] -> n[i+1] -> ...|
                     ^                   |
                     |                   |
                     --------------------|
