160.相交链表
题目描述
题目链接:160. 相交链表 - 力扣(LeetCode) (leetcode-cn.com)
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。
图示两个链表在节点 c1 开始相交:

题目数据 保证 整个链式结构中不存在环。
注意,函数返回结果后,链表必须 保持其原始结构 。
示例 1:

1 | |
双指针
使用双指针,创建两个指针pa和pb,分别指向两个头节点headA和headB
依次遍历两个链表的每个节点
- 如果pa不为空,则将pa移到下一个节点。如果pa为空,将pa指向
headB的头节点 - 如果pb不为空,则将pb移到下一个节点。如果pb为空,将pb指向
headA的头节点 - 当pa和pb都指向同一个节点,或者两者都为空的时候,返回指向的节点或者null
- 如果两个链表有交点,在第二次循环的时候,会返回交点
- 如果两个链表没有交点,在第二次遍历的时候会返回
null==null,移动的距离就是两个链表的长度
1 | |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!