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

02.07.-链表相交


title: 02.07. 链表相交
tag: 链表
categories: 代码随想录

02.07. 链表相交

ListNode* curA=headA;
ListNode* curB=headB;
int lenA=0,lenB=0;
while(curA!=NULL){lenA++;//A长度curA=curA->next;
}
while(curB!=NULL){lenB++;//B长度curB=curB->next;
}
curA=headA;
curB=headB;
//curA become max ,lenA is its length
if(lenB>lenA){swap(lenA,lenB);swap(curA,curB);
}
//求长度差
int gap= lenA-lenB;
while(gap--){curA=curA->next;
}
//遍历curA和curB 遇到相同则直接返回
while(curA!=NULL){if(curA==curB){return curA;}curA=curA->next;curB=curB->next;
}
return NULL;
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* curA=headA;ListNode* curB=headB;int lenA=0,lenB=0;while(curA!=NULL){lenA++;curA=curA->next;}while(curB!=NULL){lenB++;curB=curB->next;}//为什么还要再次赋值,因为上面next到了NULL,懂否,傻子curA = headA;curB = headB;if(lenB>lenA){swap(lenA,lenB);swap(curA,curB);}int gap=lenA-lenB;//移动while(gap){curA=curA->next;gap--;}while(curA!=NULL){if(curA==curB){return curA;}curA=curA->next;curB=curB->next;}return  NULL;}
};

http://www.mrgr.cn/news/48176.html

相关文章:

  • [前端]HTTP库Axios
  • Docker_常用命令详解
  • AI芯片常见概念
  • PR剪辑(1)
  • Sapro编程软件
  • 质量小议51 - 茧房
  • 深入理解Transformer的笔记记录(精简版本)---- ELMO->GPT->BERT
  • VS Code最新版本Retome远程ssh不兼容旧服务器问题
  • 10.11 QT数据库实现学生信息的增、删、改、查
  • Android blueprint/microfactory/microfactory.bash源码分析
  • ajax请求
  • 基于SpringBoot+Vue+MySQL的留守儿童爱心网站
  • 解锁机器人视觉与人工智能的潜力,从“盲人机器”改造成有视觉能力的机器人(下)
  • java医院后台管理系统设计与实现源码(springboot+vue+mysql)
  • 消息中间件介绍
  • 如何快速保存微信公众号文章中的图片
  • 【JVM】JMM
  • 介绍Java
  • 《浔川社团官方自即日起停止发文》
  • 大数据治理快速入门指南
  • kali(专业的渗透测试虚拟机)|kali下载链接地址 |kali安装 |kali部署指南
  • GitHub Universe Learn Live|共聚 2024 GitHub Universe 十周年
  • postgresql 安装
  • 10.11Python数学基础-多维随机变量及其分布
  • 物理学基础精解【71】
  • ELK:Elasticsearch、Logstash、Kibana Spring Cloud Sleuth和Spring Cloud Zipkin