史上最浪漫的题,程序员都哭了
浪漫相遇
你变成我,走过我走过的路。
我变成你,走过你走过的路。
然后我们便相遇了…
我宣布,这道题被评为今年最感动的题。
题目
输入两个链表,找出它们的第一个公共节点。
如下面的两个链表:
啊飒
在节点 c1 开始相交。
思路
我们使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结点遍历,当 node1 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点;当 node2 到达链表 headB 的末尾时,重新定位到链表 headA 的头结点。
这样,当它们相遇时,所指向的结点就是第一个公共结点。

代码
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode l1=headA;ListNode l2=headB;if(headA == null || headB == null) return null;while(l1!=l2){l1=l1.next;l2=l2.next;if (l1==null&&l2==null){return null;}if(l1==null){l1=headB;}if(l2==null){l2=headA;}}return l1;}
}
如果两个指针走完两个链表,也没有相交,就返回null
if (l1==null&&l2==null){return null;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
