package com.interview.algorithms.list; import com.interview.basics.model.collection.list.LinkedList; import com.interview.basics.model.collection.list.Node; /** * Created_By: stefanie * Date: 14-7-30 * Time: 下午11:08 */ public class C3_16_FirstCommonNode { public static Node find(LinkedList list1, LinkedList list2){ if(list1.size() < list2.size()){ LinkedList tmp = list1; list1 = list2; list2 = tmp; } int longer = list1.size(); Node p1 = list1.getHead(); Node p2 = list2.getHead(); while(longer > list2.size() && !p1.item.equals(p2.item)){ p1 = p1.next; longer--; } while(p1 != null && p2 != null && !p1.item.equals(p2.item)){ p1 = p1.next; p2 = p2.next; } return p1; } }