【牛客網-名企高頻面試題】 NC66 兩個連結串列的第一個公共結點
阿新 • • 發佈:2021-01-14
技術標籤:# 牛客網
【牛客網-名企高頻面試題】 NC66 兩個連結串列的第一個公共結點
題目描述:
輸入兩個連結串列,找出它們的第一個公共結點。(注意因為傳入資料是連結串列,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的)
方法:雙指標法
- 如何讓本來長度不相等的變為相等的?
可以讓a+b作為連結串列A的新長度,b+a作為連結串列B的新長度。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
if(pHead1 == null || pHead2 == null)
return null;
ListNode p1 = pHead1;
ListNode p2 = pHead2;
while(p1 != p2){
p1 = p1.next;
p2 = p2.next;
if(p1 != p2){
if(p1 == null) p1 = pHead2;
if(p2 == null) p2 = pHead1;
}
}
return p1;
}
}