当前位置: 首页 > article >正文

【力扣】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;
    }
}


http://www.kler.cn/a/162843.html

相关文章:

  • 利用滑动窗口解题
  • 【C++】new操作符的使用说明
  • DeBiFormer实战:使用DeBiFormer实现图像分类任务(二)
  • 【学习】【HTML】HTML、XML、XHTML
  • 编译ffmpeg动态库时设置RPATH为$ORIGIN
  • 前端 JS面向对象 原型 prototype
  • 船舶机电设备智能故障诊断系统
  • python3.5安装教程及环境配置,python3.7.2安装与配置
  • 3DCAT+上汽奥迪:打造新零售汽车配置器实时云渲染解决方案
  • Linux 权限管理
  • markdown记录
  • 字符串指令集
  • 渗透测试工具AWVS的全面解析
  • 计算机方向的一些重要缩写和简介
  • 042:el-table表格表头自定义高度(亲测好用)
  • 硬件开发笔记(十五):RK3568底板电路VGA显示接口原理图分析
  • Docker网络原理
  • vue2 百度地图实现 车在线路上移动 BMap、BMapGL
  • 【页面】表格展示
  • 如何切换用户和更改用户密码
  • Windows核心编程 HOOK
  • 2024山东健博会,济南健康展,5月中国大健康展,健康管理展
  • ubuntu安装tomcat并配置前端项目
  • 虾皮跨境电商网:东南亚领先的电商平台
  • LVS-DR+Keepalived+动静分离实验
  • 对系统的 Go 版本进行升级