【力扣】160.相交链表

160.相交链表

这个题目因为我之前在学指针的时候没学好,所以总感觉有一种畏难,我害怕。但是当真正的开始学习之后,发现现在的脑袋还是能用的,所以不要放弃,你可以的!

题解:

总的来说还是挺简单的,大家看官方的解答就应该能够看懂了。这里就说一下我的理解。

考虑两种情况:

1、相交:现在已知二者相交,那么当两个链表长度相同的时候,可以是同时到达的,这个的实现直接就用while循环就行了。但是当二者长度不相同时,那如何能让其指针指向相同的target呢,是不是只要遍历的长度一样就可以了?

假设链表P1,P2的总长度分别为m,n。其中P1,P2不相交的长度分别是a,b,相交的长度是c。那么当链表p1一直在遍历的时候直到其为空,我们让他指向p2的头结点,同理p2也是一样,这样两个链表均会在走了a+c+b之后在相交点同时到达。

2、不相交:不相交就不用考虑那么多了,因为最终两个链表的指针都会指向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) {
         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;
    }
}

相关推荐

  1. 160.相交

    2023-12-11 01:48:04       55 阅读
  2. 相交-

    2023-12-11 01:48:04       30 阅读
  3. 100】141.环形

    2023-12-11 01:48:04       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 01:48:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 01:48:04       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 01:48:04       82 阅读
  4. Python语言-面向对象

    2023-12-11 01:48:04       91 阅读

热门阅读

  1. 关于 UbuntuServer 的一些配置

    2023-12-11 01:48:04       54 阅读
  2. SpringBootAdmin设置邮件通知

    2023-12-11 01:48:04       52 阅读
  3. 顺序表的应用

    2023-12-11 01:48:04       56 阅读
  4. 力扣119双周赛

    2023-12-11 01:48:04       63 阅读
  5. 力扣面试150题 | 轮转数组

    2023-12-11 01:48:04       63 阅读
  6. 智能化缺陷检测系统的发展趋势

    2023-12-11 01:48:04       70 阅读
  7. Android 13 - Media框架(22)- ACodecBufferChannel

    2023-12-11 01:48:04       46 阅读
  8. LeetCode 2048. 下一个更大的数值平衡数

    2023-12-11 01:48:04       62 阅读
  9. Linux结束程序运行的命令

    2023-12-11 01:48:04       54 阅读