一、题目
二、示例
三、思路
本题思路:使用两个指针,指向两个链表的起始节点。
以如上例子为例:PA指向a首部,PB指向B首部,此时两个指针同时移动,如果当PA为空时,此时就将其指向B的首节点,如果B为空时,将其指向A的首节点。如果两者存在相交,则在就会于8节点相遇。
四、代码
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} headA
* @param {ListNode} headB
* @return {ListNode}
*/
var getIntersectionNode = function(headA, headB) {
let p1 = headA
let p2 = headB
let timer = 0
while(p1 && p2) {
if(timer >= 2) return null
if(p1 === p2) {
return p1
}
p1 = p1.next
p2 = p2.next
if(p1 === null) {
p1 = headB
timer++
}
if(p2 === null) {
p2 = headA
}
}
};
五、总结
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47450807/article/details/123484871
内容来源于网络,如有侵权,请联系作者删除!