溫馨提示×

java怎么判斷兩個鏈表是否相交

小億
97
2023-10-22 10:52:58
欄目: 編程語言

判斷兩個鏈表是否相交的方法可以使用雙指針的方式。具體步驟如下:

  1. 定義兩個指針p1和p2,分別指向鏈表1和鏈表2的頭節點。
  2. 同時遍歷鏈表1和鏈表2,如果p1和p2指向的節點相同,則說明兩個鏈表相交,返回true。
  3. 如果遍歷完鏈表1和鏈表2都沒有找到相交的節點,則說明兩個鏈表不相交,返回false。
  4. 遍歷過程中,每次將p1和p2向后移動一個節點,直到遍歷完鏈表1和鏈表2。

以下是一個示例代碼實現:

public class LinkedListIntersection {
    public static boolean isIntersect(ListNode head1, ListNode head2) {
        ListNode p1 = head1;
        ListNode p2 = head2;
        
        while (p1 != p2) {
            p1 = (p1 == null) ? head2 : p1.next;
            p2 = (p2 == null) ? head1 : p2.next;
        }
        
        return p1 != null;
    }
}

在上述代碼中,ListNode是一個鏈表節點的類,包含一個值value和指向下一個節點的指針next。isIntersect()方法接受兩個鏈表的頭節點作為參數,返回一個boolean值來表示兩個鏈表是否相交。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女