package code; /* * 160. Intersection of Two Linked Lists * é¢æï¼æ±ä¸¤ä¸ªé¾è¡¨ç交åç¹ * é¾åº¦ï¼Easy * åç±»ï¼LinkedList * æè·¯ï¼ä¸¤ç§æ¹æ³ï¼1.æ¾åºä¸¤ä¸ªé¾è¡¨çé¿åº¦å·®xï¼é¿çå èµ°xæ¥ï¼ 2.èµ°å®ä¸ä¸ªé¾è¡¨ï¼èµ°å¦ä¸ä¸ªé¾è¡¨ï¼ä¸¤ä¸ªcuré½èµ°äºä¸¤ä¸ªé¾è¡¨é¿åº¦ç忥 * Tipsï¼ä¸¤ç§æ¹æ³çæ¬è´¨æ¯ä¸æ ·çå ¶å®ï¼é½æ¯æ¾å°äºæ¥æ°å·®ï¼é½éåäºä¸¤é */ public class lc160 { public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA==null||headB==null) return null; ListNode curA = headA; ListNode curB = headB; while (curA != curB) { if(curA == null) curA = headB; if(curB == null) curB = headA; if(curA==curB) return curA; //å«å¿äºå¤æä¸ä¸æ¯å¦ç¸ç curA = curA.next; curB = curB.next; } return curA; } }