day4 找到两个链表的交点

ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {

ListNode* curA = headA;

ListNode* curB = headB;

int lenA = 0, lenB = 0;

while (curA != NULL) { // 求链表A的长度

lenA++;

curA = curA->next;

}

while (curB != NULL) { // 求链表B的长度

lenB++;

curB = curB->next;

}

curA = headA;

curB = headB;

// 让curA为最长链表的头,lenA为其长度

if (lenB > lenA) {

swap (lenA, lenB);

swap (curA, curB);

}

// 求长度差

int gap = lenA - lenB;

// 让curA和curB在同一起点上(末尾位置对齐)

while (gap--) {

curA = curA->next;

}

// 遍历curA 和 curB,遇到相同则直接返回

while (curA != NULL) {

if (curA == curB) {

return curA;

}

curA = curA->next;

curB = curB->next;

}

return NULL;

}

相关推荐
艾醒6 小时前
探索大语言模型(LLM):Open-WebUI的安装
人工智能·算法·全栈
猫天意6 小时前
【CVPR2023】奔跑而非行走:追求更高FLOPS以实现更快神经网络
人工智能·深度学习·神经网络·算法·机器学习·卷积神经网络
宁檬精7 小时前
算法练习——55.跳跃游戏
数据结构·算法·游戏
王璐WL7 小时前
【C语言入门级教学】内存函数
c语言·开发语言·算法
啃啃大瓜7 小时前
python常量变量运算符
开发语言·python·算法
熊文豪7 小时前
【华为OD】找出通过车辆最多颜色
算法·华为od
Running_slave7 小时前
位运算左移右移应该怎么玩?
前端·javascript·算法
塔中妖7 小时前
【华为OD】环中最长子串2
算法·华为od
JCBP_7 小时前
QT(3)
开发语言·汇编·c++·qt·算法
研梦非凡8 小时前
ICCV 2025|基于曲线感知高斯溅射的3D参数曲线重建
人工智能·算法·3d