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

【数据结构】【链表代码】相交链表

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
 typedef struct ListNode ListNode;
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    //先求出两个链表的长度
    ListNode*curA=headA;
    int la=0;
    while(curA){
        ++la;
        curA=curA->next;
    }
    ListNode*curB=headB;
    int lb=0;
    while(curB){
        ++lb;
        curB=curB->next;
    }
    //短的按兵不动,长的运动直至与短的相等长度
    ListNode*longList=headA;
    ListNode*shortList=headB;
    if(lb>la){
        longList=headB;
        shortList=headA;
    }

    int gap=abs(la-lb);
    while(gap--){//长的先走
        longList=longList->next;
    }
    while(longList){
        if(longList==shortList)
            return longList;
        
        longList=longList->next;
        shortList=shortList->next;
    }
    return NULL;

}


http://www.kler.cn/news/341365.html

相关文章:

  • Git 的工作目录、本地仓库和远程仓库
  • Redis:分布式 - 哨兵
  • 简易登录注册;测试类;postman测试;
  • 03. prometheus 监控 Linux 主机
  • 推荐系统:用户行为建模方法
  • Java基础:面向对象编程(1)
  • 如何在uniapp(vue2)中使用Vue Router和router-view进行页面管理
  • Python循环练习
  • 详解JVM类加载机制
  • 【牛客刷题实战】BC120 争夺前五名
  • 产品经理产出的原型设计 - 需求文档应该怎么制作?
  • 深入解析 GPT 系列模型:核心原理、应用与未来发展
  • 安卓13屏蔽蓝牙匹配对话框 自动匹配 android13屏蔽蓝牙匹配对话框 自动匹配
  • 机器学习课程学习周报十五
  • 全网首创Windows Powershell 批量创建、重命名和拷贝文件夹和文件到指定目录
  • 【C++】适配器stack/queue/priority_queue使用和实现
  • redis集成到spring boot中使用
  • 设计模式:单例
  • 学习Ultralytics(data)(1)
  • ARTS Week 44