剑指 Offer II 023. 两个链表的第一个重合节点:
题目链接 :剑指 Offer II 023. 两个链表的第一个重合节点
题目:给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。
思路:
1、两个链表各自遍历,其中一个链表遍历完时指向另一个链表的当前节点。
2、 此时的当前节点就是重合的第一个节点。
AC代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode p1=headA;
ListNode p2=headB;
while(p1!=p2)
{
p1 = p1 != null?p1.next:headB;
p2 = p2 != null?p2.next:headA;
}
return p1;
}
}