力扣第 52题 两个链表的第一个公共节点
力扣题目描述
示例
读懂题意
这一道力扣题属于简单类型,读起题目也是很容易的,题目给的意思是开头是两个链表,结尾可能两链表会相遇,就是能找到两链表的公共部位,题目的要求就是我们必须找到公共结点的位置,并且返回。由示例一可以看出,值相等并非一定是公共结点。但是公共结点的值一定是相等的,所以我们只能从结点出发,判断链链表指向是否为同一结点。如果在链尾之前能找到公共结点,就返回公共结点,如果没有找到就返回为null。
解题思路
首先最简单最容易理解的一个思路,双层while循环,判断A链表当前结点与链表B结点是否相等,不相等A就往下一个结点移动,B接着判断,一直移到最后一个节点。因为两链表的长度不一定相等,所以移动的距离也不同,采用双层循环来处理!
解题代码
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode a = headA;
ListNode b = headB;
while(a!=null){
b = headB;
while(b!=null){
if(b==a){
return b;
}
b=b.next;
}
a = a.next;
}
return null;
}
}
|