LeetCode Java刷题笔记—160. 相交链表

Posted 刘Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Java刷题笔记—160. 相交链表相关的知识,希望对你有一定的参考价值。

160. 相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

简单难度,这道题和剑指 Offer 52. 两个链表的第一个公共节点是同一道题。A和B两个链表长度可能不同,但是A+B和B+A的长度是相同的,所以两个节点先遍历自己再遍历对方一定是同时结束。 如果A,B相交的话A和B有一段尾巴是相同的,所以两个遍历的指针一定会同时到达第一个交点 如果A,B不相交的话两个指针就会同时到达尾部,即出现null=null的情况。

public ListNode getIntersectionNode(ListNode headA, ListNode headB) 
    ListNode l1 = headA, l2 = headB;
    while (l1 != l2) 
        //如果走完自己的路,开始走对方的路
        l1 = l1 == null ? headB : l1.next;
        l2 = l2 == null ? headA : l2.next;
    
    return l1;

以上是关于LeetCode Java刷题笔记—160. 相交链表的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题笔记之链表篇160. 相交链表

LeetCode刷题笔记-数据结构-day11

LeetCode刷题笔记-数据结构-day11

[JavaScript 刷题] 链表 - 相交链表, leetcode 160

[JavaScript 刷题] 链表 - 相交链表, leetcode 160

Leetcode刷题100天—160. 相交链表( 链表)—day60