题目描述
输入两个链表,找出它们的第一个公共结点。
分类:链表
解法1:先计算两个链表的长度,然后让较长的先走即可
-
-
-
-
-
-
-
-
-
-
- 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;
- }
- }
原文链接 http://blog.csdn.net/crazy__chen/article/details/45012035