我是靠谱客的博主 落寞向日葵,最近开发中收集的这篇文章主要介绍力扣---找到两个链表的交点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

解题思路:

1、首先我们求出两个链表的表长和长度差n

2、我们再找到较长链表的第n个节点

3、从较长链表第n个节点和较短链表的第一个节点等速遍及

4、如果存在相交节点则找到,如果遍历到最后一个节点都没有找到则没有相交节点。

代码实现

getSameNode(ListNode headA, ListNode headB){

pA = headA;

pB = headB;

int lA = len(pA);

int lB = len(pB);

n = (lA > lB) ? lA - lB : lB - lA;

if(lA > lB){

        while(n>0){

               pA = pA.next;

                n--;

        }

}else{

        while(n>0){

               pB = pB.next;

                n--;

        }

}

while(pA != null && pB != null){

        if(pA == pB) return pA;

        pA = pA.next;

       pB = pB.next;

}

return null;

}

最后

以上就是落寞向日葵为你收集整理的力扣---找到两个链表的交点的全部内容,希望文章能够帮你解决力扣---找到两个链表的交点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部