题目描述:输入两个链表,找出它们的第一个公共结点。

i c } m l p a o s r s f } t u F n F o c o r v v v v w } w } v v v i } } w } r u 3 f a a a a h h a a a f e h / e n 7 i r r r r i i r r r l i t d S n l l l s l u a o d p q p q e p p e q q p q l e w } e l w } e i } p q r t l F H H L L H L H L H H e n h e h f H H n i u i e e e e p e e q e e e e n i { n i p e e o t r a a n n H a n H a n a a > l l H p a a L n i s d d e d e d d d = e p l = e q l e H r d d i o t = = a + a + 1 2 0 H e H e a e e 1 2 s n C = = d = = d = = p l e n - l e n d a t t o 0 0 ? ? = = L { e a l e a 1 d u = = N { m h h . p 1 . q 1 e n d - e n d - ? 1 r o m e e n H n H h h n 1 = n 2 = . n p q d o a a e e e e e e > > n = H H e n d d x a x a a a - = = 1 = = 1 e = p e e ( N 1 2 t d t d d d x = H a a 0 o ? ? 1 2 q 0 p 0 q t e d d ) d ! . ! . L H H q a 1 2 e = n = n e { e { e ! H d ? ? ( e e n a a = e 1 . . _ n x n x d d a ! n n i t i t 1 2 n d e e h l l ? ? i 2 x x e . . l t t a { { n n { d e e & 1 x x & : t t q L H i e s a t d N 2 o ? d . e n ? e , x _ t h ! e = a d n 2 i : l L { i s t N o d e ? ) L i s t N o d e {

算法思想:先算出两个链表的长度,假如差为K,长的链表先走K步,然后两个指针一起走,如果相遇就是第一个公共节点。如果没有相遇就没有公共节点。

github地址:https://github.com/cubegao/LeetCode