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;

}

相关推荐
车队老哥记录生活13 分钟前
【MPC】模型预测控制笔记 (3):无约束输出反馈MPC
笔记·算法
地平线开发者1 小时前
BEV 感知算法评价指标简介
算法·自动驾驶
不过四级不改名6771 小时前
用c语言实现简易c语言扫雷游戏
c语言·算法·游戏
C++ 老炮儿的技术栈3 小时前
手动实现strcpy
c语言·开发语言·c++·算法·visual studio
倔强的石头_3 小时前
【数据结构与算法】利用堆结构高效解决TopK问题
后端·算法
倔强的石头_3 小时前
【数据结构与算法】详解二叉树下:实践篇————通过链式结构深入理解并实现二叉树
后端·算法
哎写bug的程序员4 小时前
leetcode复盘(1)
算法·leetcode·职场和发展
风靡晚4 小时前
用于汽车毫米波雷达的四维高分辨率点云图像
人工智能·算法·机器学习·计算机视觉·汽车·信息与通信·信号处理
简简单单做算法4 小时前
基于FD-MIMO技术的雷达通信一体化系统波形设计matlab模拟与仿真
算法
遥不可及3874 小时前
动态规划(DP)从入门到精通:原理详解与经典问题解析
java·算法