Linklist经典题目—判断两个链表是否有相交并返回相交起始结点(附数学推导)
本文内容
- 相交链表问题的解决思路及数学原理推导
- 可执行代码
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图例如下:
文章图片
【Linklist经典题目—判断两个链表是否有相交并返回相交起始结点(附数学推导)】题目作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetb...
题目来源:力扣(LeetCode)
题解作者:WildDuck
解决思路与原理
本题目与判断环形链表以及其入口同类型,不仅解决上用到双指针,本质上也同为路程问题
文章图片
文章图片
2.可执行代码,双指针构建相同路程解决问题
/**
* Definition for singly-linked list.
* struct ListNode {
*int val;
*struct ListNode *next;
* };
*/
typedef struct ListNode* ListNode_pointer;
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB)
{
ListNode_pointer temp_A = headA;
ListNode_pointer temp_B = headB;
while(temp_A != temp_B)
{
if(temp_A != NULL && temp_B != NULL)
{
temp_A = temp_A -> next;
temp_B = temp_B -> next;
}
else if(temp_A == NULL)
{
temp_A = headB;
}
else if(temp_B == NULL)
{
temp_B = headA;
}
}
return temp_A;
}
文章图片
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- leetcode|leetcode 92. 反转链表 II
- 年国考行测备考(重要的题目做三遍)
- 这份史上最经典的3大学习方法,清华北大学霸都在用!
- 我们为什么喜欢看《古惑仔》,它到底经典在哪()
- 【C】题目|【C语言】题集 of ⑥
- 经典的白色西装太吸睛了!李沁baby赵薇穿出颜值巅峰,这也太好看
- Leetcode|Leetcode No.198打家劫舍
- 我们都知道一片冰心在玉壶,其实古人这首诗写的”冰心“同样经典
- 鲁迅先生的经典语录