链表相交

题目

思路:

A自己的链表节点数+B自己的链表节点数+共同节点数是相同的。那么如果一个指针先从A出发走到头再从B的头节点出发,那么

  • 如果两个链接有相交,必然会在交换后一起走到相交节点,这时候两者相等都为相交节点
  • 如果两个链接没有相交,必然会在交换后都走到头,这时候两者相等都为null节点

代码:

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode aI=headA;
        ListNode bI=headB;
        while (aI!=bI){
            aI=aI==null?headB: aI.next;

            bI=bI==null?headA: bI.next;
        }
        return aI;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容