【刷算法】两个链表的第一个公共结点
生活随笔
收集整理的這篇文章主要介紹了
【刷算法】两个链表的第一个公共结点
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
輸入兩個(gè)鏈表,找出它們的第一個(gè)公共結(jié)點(diǎn)。
分析
考慮到兩個(gè)鏈表不一樣長(zhǎng)的情況,算出兩個(gè)鏈表的長(zhǎng)度差,然后長(zhǎng)的鏈表要先把長(zhǎng)度差走完,然后兩個(gè)鏈表再一起走。
代碼實(shí)現(xiàn)
/*function ListNode(x){this.val = x;this.next = null; }*/ function FindFirstCommonNode(h1, h2) {var h1Len = 0, h2Len = 0;var cur = h1;while(cur!==null){h1Len++;cur = cur.next;}cur = h2;while(cur!==null){h2Len++;cur = cur.next;}var distance = 0;var t1, t2;if(h1Len > h2Len){t1 = h1;t2 = h2;distance = h1Len - h2Len;}else{t1 = h2;t2 = h1;distance = h2Len - h1Len;}while(distance !== 0){t1 = t1.next;distance--;}while(t1 !== t2){t1 = t1.next;t2 = t2.next;}return t1; } 復(fù)制代碼總結(jié)
以上是生活随笔為你收集整理的【刷算法】两个链表的第一个公共结点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阿里云获得SAP HANA 2T实例公共
- 下一篇: 负载均衡 LVS