두리스트의 제 1 공통 노드 후진 어레이의 수를 결정하는 단계;

다수의 도면 앞 뒤에보다 크면 배열의 두 숫자는 두 숫자는 역방향 쌍을 형성한다. 어레이 입력이 배열은 P. 역방향 쌍의 총 수를 발견 P 및 결과 모듈 1,000,000,007 출력한다. 즉, 출력의 P % 1,000,000,007

그림 삽입 설명 여기
그림 삽입 설명 여기
그림 삽입 설명 여기

두 입력 목록, 첫 공통 노드를 찾을 수 있습니다.

제에서 교차하면 분명하지 않은 X 자형, 두리스트의 교집합 이후 두 뒤에리스트 노드 같다

목록의 길이는 처음 두 얻을하고 더 긴 목록을 갈 수 있도록, 노드의 수는 같은 노드인지 여부, 다음, 두 목록 사이에 두 개의 목록 각 사람의 각 단계, 판사의 차이의 길이를 이동하는 것입니다 .

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    int func1(ListNode* Head)   //求两个链表的长度
    {
        int count = 0;
        while(Head)
        {
            ++count;
            Head = Head->next;
        }
        return count;
    }
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        int length1 = func1(pHead1);
        int length2 = func1(pHead2);
        int s;
        ListNode* p1 = pHead1;
        ListNode* p2 = pHead2;
        if(length1 > length2)
        {
            s = length1 - length2;
            while(s--)
            {
                p1 = p1->next;
            }
        }
        else
        {
            s = length2 - length1;
            while(s--)
            {
                p2 = p2->next;
            }
        }
        while(p1)
        {
            if(p1 == p2)
                return p1;
            p1 = p1->next;
            p2 = p2->next;
        }
    }
};
게시 된 230 개 원래 기사 · 원의 찬양 (28) · 전망 9303

추천

출처blog.csdn.net/weixin_43767691/article/details/103807264