标签:
原题解法超屌: ref http://blog.csdn.net/u012162613/article/details/41560337
public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA==null||headB==null) return null; //http://www.cnblogs.com/yuzhangcmu/p/4128794.html // 看似算法不难,但是想要写对必须得简化思路,亦即是说 // A // 。。。。 // B 这种情况,要保证B马上跳的到跟A相同的位置,注意这里把一样的那些个路径啊,多余的路径全简略了 ListNode pa = headA, pb = headB ; ListNode tailA =null, tailB = null; while(true){ if(pa==null) pa = headB; if(pb==null) pb= headA; if(pa.next==null){ tailA = pa; } if(pb.next==null){ tailB = pb; } if( tailA!=null && tailB!=null && tailA!=tailB) return null; if(pa==pb) return pa; pa = pa.next; pb = pb.next; } }
Intersection of Two Linked Lists
标签:
原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4413404.html