剑指 Offer II 023. 两个链表的第一个重合节点
作者:互联网
题目:给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。
思路:想办法把两个链表右对齐,这样从右往左最后一个相同节点就是相交节点了;
在A和B不相同的情况下A和B各自移动到下一节点,移动到空的时候变为另外一个链的头结点继续(也即在A链的末尾加上B链,B链的末尾加上A链,右端必然是对齐的);
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode a = headA;
ListNode b = headB;
while(a != b){
a = (a != null) ? a.next: headB;
b = (b != null) ? b.next: headA;
}
return a;
}
标签:II,ListNode,Offer,链表,headB,headA,null,节点 来源: https://blog.csdn.net/qq_49005459/article/details/120573838