输入两个链表,找出它们的第一个公共节点。
如图所示两个链表,在节点c1处开始相交:
思路:长链表走到与短链表等长的位置,开始查找相交节点。
public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) return null; ListNode node1=headA; ListNode node2=headB; while (node1!=node2){ // if (node1==null){ // node1= headB; // }else { // node1 = node1.next; // } // if (node2==null){ // node2=headA; // }else { // node2=node2.next; // } node1=(node1==null)?headB:node1.next; node2=(node2==null)?headA:node2.next; } return node1; } }