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

LeetCode02.07.链表相交

在这里插入图片描述
思路:
重点是两个链表同步前进,同个起点,同样步长,那么我们需要知道两个链表的长度,让长的对齐短的,也就是说,按照图上的示例1,链表A从4开始,那么B要从0开始,也就是我们所说的对齐,剩下就是常规操作了

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
{
    struct ListNode *L=headA;
    struct ListNode *S=headB;
    int LenA=0,LenB=0;//用于记录各链表长度
    int abs;//记录长度差值
    //1.求出A,B链表各自的长度
    while(L)
    {
        LenA++;
        L=L->next;
    }
    while(S)
    {
        LenB++;
        S=S->next;
    }
    if(LenA>=LenB) 
    {
        abs=LenA-LenB;
        L=headA;
        S=headB;
    }
    else 
    {
        abs=LenB-LenA;
        L=headB;
        S=headA;
    }
    //2.长链表起始指针pX往前移动,确保两链表同步移动
    for(int i=0;i<abs;i++)
        L=L->next;
    //3.查找是否相交
    while(L)
    {
        if(L==S)
            return L;
        L=L->next;
        S=S->next;
    }
    return NULL;
}

相关文章:

  • AVI格式:经典视频格式的坚守与挑战
  • 在word中使用zotero添加参考文献并附带超链接
  • SpringBoot整合高德地图完成天气预报功能
  • 火山引擎云上实战:QwQ-32B 大模型快速部署
  • Python小练习 Vol.1:汉诺塔的移动(递归思维初体验)
  • 深度学习基础-----神经⽹络与深度学习((美)MichaelNielsen )
  • VMware三种网络模式对比总结
  • 基于大模型的肿瘤预测与全流程诊疗辅助系统技术文档
  • 初见Springboot
  • Lag-Llama时间序列模型简单实现数据预测
  • Elasticsearch7.X建模各属性文档
  • 【深度学习与实践】线性回归模型
  • °C 展示方式
  • 怎样基于安卓部署deepseek?
  • (UI自动化测试web端)第二篇:元素定位的方法_css定位之css选择器
  • ZZ052-大数据应用与服务-竞赛样题 部分自己解析
  • Vue3 中使用 vuedraggable 实现拖拽排序功能,分组拖拽
  • 虚拟机CentOS-7安装redis教程
  • 红帽认证工程师报考条件
  • Linux 设备分类详解:字符设备、块设备与网络设备解析
  • 网站开发用台式机电脑配置/网站文章优化技巧
  • 公司做网站会计凭证怎么做/关键词排名
  • wap开头的网站/淘宝怎么推广自己的产品
  • 南宁国贸网站建设/域名解析ip
  • 网站文章排版工具/新闻头条今日要闻10条
  • dedecms 做影网站/开封网络推广哪家好