Leetocde160. 相交链表(双指针)

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetocde160. 相交链表(双指针)相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/

解题思路

我们可以让pA指针先遍历A链表,遍历完之后再遍历B链表;让pB指针先遍历B链表,遍历完之后再遍历A链表。我们可以发现,如果A,B有交点,那面交点之后的值肯定是一样长的。如果没有交点,那么最后pA和PB都会等于null。

代码

public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) 
            return null;
        ListNode pA = headA, pB = headB;
        while (pA != pB) {
            pA = pA == null ? headB : pA.next;
            pB = pB == null ? headA : pB.next;
        }
        return pA;
    }
}

复杂度分析

  • 时间复杂度:O(m + n)
  • 空间复杂度:O(1)

以上是关于Leetocde160. 相交链表(双指针)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 160 相交链表[哈希表 双指针] HERODING的LeetCode之路

160. 相交链表简单哈希双指针

160. 相交链表简单哈希双指针

160. 相交链表简单哈希双指针

力扣160. 相交链表 哈希双指针差值法栈四种花式解法

160. 相交链表