[ 链表OJ题--C语言] 相交链表 两个链表的第一个公共结点

Posted 小白又菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 链表OJ题--C语言] 相交链表 两个链表的第一个公共结点相关的知识,希望对你有一定的参考价值。


 目录

题目来源:

实现代码:

思路分析:


题目来源:

LeetCode160题. 相交链表 - 力扣 /牛客网:两个链表的第一个公共结点

题目描述:

[[

实现代码:

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
int lenA = 0;
int lenB = 0;
struct ListNode *A = headA;
struct ListNode *B = headB;
//求A的长度
while(headA)

headA = headA->next;
lenA++;

while(headB)

headB = headB->next;
lenB++;

if(lenA<lenB)

//B 更长
int k = lenB-lenA;
while(k--)

B = B->next;

while(A&&B)

if(A == B)

return A;

A = A->next;
B = B->next;

return NULL;

else

//A 更长
int k = lenA-lenB;
while(k--)

A = A->next;

while(A&&B)

if(A == B)

return A;

A = A->next;
B = B->next;

return NULL;

return NULL;

[

思路分析:

[[

思路:首先遍历2个链表求出各链表的长度,再计算两个链表的长度差k,再让长的链表先走k步,此时两个链表的长度相同,一起向后走,如果在遍历结束前,两个指针指向同一块空间说明找到了交点的,如果在遍历结束前都没找到,说明两个链表不相交。

[[

[

 (本题完)


以上是关于[ 链表OJ题--C语言] 相交链表 两个链表的第一个公共结点的主要内容,如果未能解决你的问题,请参考以下文章

数据结构学习笔记(数组链表OJ题)整理与总结

数据结构学习笔记(数组链表OJ题)整理与总结

看了有助于你面试的单链表的OJ面试题

数据结构之超硬核热门复杂度数组链表OJ题2W+文字+图片详解

链表12道经典OJ题——助你理解链表原理

java 数据结构常考的OJ 链表,重点!重点!!!