Create lca1.cpp

LCA assuming no duplicate nodes & both nodes exist. 
Note that only two topologies are possible:
One of two is the LCA of the other
A third nodes is the LCA and exactly one of the two lives on the left sub-tree and the other lives on the right sub-tree.

Basic algorithm: 
1. at any nodes only these conditions are true:
- (1.1) one of the nodes match
  then either *the other nodes is down somewhere 
           or *the other nodes is on another branch
  both cases we can just return this nodes as results of lca search and let the caller to decides with better info (from another branch)
- both branches match
    * return at the first as this is the lca
- one branch matches
    * exactly the same analysis of (1.1)
    or  this is one of the two branches