Lowest common ancestor in recursive tree traversal
You seem to be have a few misconceptions, as @rolfl points out.

First, the data structure you have described and illustrated does not fit the definition of a tree.  Rather, I would characterize your data structure as a graph of maximum in-degree 2.

Second, you seem to be under the impression that the TreeSet internally contains a tree that resembles part of your original graph.  Actually, a TreeSet is nothing more than a SortedSet; the fact that the SortedSet is implemented by using a tree internally is irrelevant to you.  nodeList1.descendingIterator() does not produce an iterator that walks from root to leaf.  Rather, it yields nodes reverse-sorted according to the value contained in the node.

As a result, the code does not work.