题目描述
输入两个链表,找出它们的第一个公共结点。
分类:链表
解法1:先计算两个链表的长度,然后让较长的先走即可
分类:链表
解法1:先计算两个链表的长度,然后让较长的先走即可
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
if(pHead1==null || pHead2==null) return null;
ListNode p = pHead1;
int count1 = 0;
while(p!=null){
p = p.next;
count1++;
}
ListNode q = pHead2;
int count2 = 0;
while(q!=null){
q = q.next;
count2++;
}
int gap = count1-count2;
if(gap>0){
while(gap>0){
pHead1 = pHead1.next;
gap--;
}
}else{
while(gap<0){
pHead2 = pHead2.next;
gap++;
}
}
while(pHead1!=pHead2){
pHead1 = pHead1.next;
pHead2 = pHead2.next;
}
return pHead1;
}
}