日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode 160.相交链表

發布時間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode 160.相交链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

難度:簡單
頻率:140
題目

給你兩個單鏈表的頭節點 headA 和 headB ,請你找出并返回兩個單鏈表相交的起始節點。如果兩個鏈表不存在相交節點,返回 null 。



解題方法:雙指針遍歷
解題思路:

  • 1.假設兩個鏈表沒有相交,即兩個指針分別遍歷 兩個鏈表(遍歷完第一個直接遍歷第二個head) 最后同時結束(同時為null)
  • 2.假設兩個鏈表相交,即最后肯定是有一小段是同一段。即Y的下面**[C]**。
  • 3.而兩個鏈表的總節點數總一定的**[A+C+B+C],最后又有一小段是一定的[C],故如果是相交,我們遍歷完第一個鏈表,再遍歷到相交點是的總節點數量是一定的[A+C+B=B+C+A]**,即同時動的話就會相交。
  • 故只要同時遍歷,并且判斷是否兩指針相等即可。
  • 相等的情況有兩種
    • 第一種 沒有相交,跟1說的一樣,都是遍歷到結尾null處,直接返回null即可。
    • 第二種 相交,而且相等點即為相交點。
      代碼
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val = x;* next = null;* }* }*/ public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode p1=headA,p2=headB;while(p1!=p2){p1=p1!=null?p1.next:headB;p2=p2!=null?p2.next:headA;}return p1;} }

需要注意的地方
1.遍歷的時候,是遍歷完第一個鏈表即返回第二個鏈表頭節點head處。
2.遍歷的時候,只要不是null,就next;

總結

以上是生活随笔為你收集整理的Leetcode 160.相交链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。