输入两个链表,找出它们的第一个公共节点。
用Hash表当然是可以,遍历A,再遍历B就可以了,但是可以用一个节省空间的办法,双指针,交换指针指向的链表
public classSolution{
publicListNodegetIntersectionNode(ListNode headA, ListNode headB){
if (headA == null || headB == null) {
return null;
}
ListNode pA = headA, pB = headB;
while (pA != pB) {
pA = pA == null ? headB : pA.next;
pB = pB == null ? headA : pB.next;
}
return pA;
}
网友评论