16.相交链表
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。
-
思路:将两个单链表相连,当两个相连的链表存在相交节点时,则两个相连的链表存在相同的节点,且相同的节点为所求的相交的初始节点,否则,则返回null
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode p1 = headA;
ListNode p2 = headB;
while(p1!=p2){
if(p1==null){
p1 = headB;
}else{
p1 = p1.next;
}
if(p2==null){
p2 = headA;
}else{
p2 = p2.next;
}
}
return p1;
}
}
本文介绍了一种高效算法来确定两个单链表是否存在相交节点,并返回相交的起始节点。通过同时遍历两个链表的方式,巧妙地解决了不同长度链表相交的问题。
1644

被折叠的 条评论
为什么被折叠?



