1. 程式人生 > 其它 >【牛客網-名企高頻面試題】 NC66 兩個連結串列的第一個公共結點

【牛客網-名企高頻面試題】 NC66 兩個連結串列的第一個公共結點

技術標籤:# 牛客網

【牛客網-名企高頻面試題】 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; } }