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;

}

相关推荐
dying_man2 分钟前
LeetCode--42.接雨水
算法·leetcode
vortex532 分钟前
算法设计与分析 知识总结
算法
艾莉丝努力练剑1 小时前
【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(三)
c语言·开发语言·数据结构·学习·算法
ZZZS05161 小时前
stack栈练习
c++·笔记·学习·算法·动态规划
hans汉斯1 小时前
【人工智能与机器人研究】基于力传感器坐标系预标定的重力补偿算法
人工智能·算法·机器人·信号处理·深度神经网络
vortex53 小时前
算法设计与分析:分治、动态规划与贪心算法的异同与选择
算法·贪心算法·动态规划
前端拿破轮3 小时前
🤡🤡🤡面试官:就你这还每天刷leetcode?连四数相加和四数之和都分不清!
算法·leetcode·面试
地平线开发者4 小时前
征程 6|工具链量化简介与代码实操
算法·自动驾驶
DoraBigHead4 小时前
🧠 小哆啦解题记——谁偷改了狗狗的台词?
算法
Kaltistss4 小时前
240.搜索二维矩阵Ⅱ
线性代数·算法·矩阵