您的位置:首页 > 其它

两个链表的第一个公共结点

2015-09-24 10:12 281 查看
输入两个链表,找出它们的第一个公共结点。

package linkedList;

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;
}
int len1=getLen(pHead1);
int len2=getLen(pHead2);
if(len1>len2){
int step=len1-len2;
while(step>0){
pHead1=pHead1.next;
step--;
}
}else if(len1<len2){
int step=len2-len1;
while(step>0){
pHead2=pHead2.next;
step--;
}
}

while(pHead1!=pHead2){
pHead1=pHead1.next;
pHead2=pHead2.next;
}
return pHead1;
}

public int getLen(ListNode pHead){
int len=0;
while(pHead!=null){
len++;
pHead=pHead.next;
}
return len;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: