【刷算法】两个链表的第一个公共结点
生活随笔
收集整理的這篇文章主要介紹了
【刷算法】两个链表的第一个公共结点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
輸入兩個鏈表,找出它們的第一個公共結點。
分析
考慮到兩個鏈表不一樣長的情況,算出兩個鏈表的長度差,然后長的鏈表要先把長度差走完,然后兩個鏈表再一起走。
代碼實現
/*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; } 復制代碼總結
以上是生活随笔為你收集整理的【刷算法】两个链表的第一个公共结点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云获得SAP HANA 2T实例公共
- 下一篇: 负载均衡 LVS