다수의 도면 앞 뒤에보다 크면 배열의 두 숫자는 두 숫자는 역방향 쌍을 형성한다. 어레이 입력이 배열은 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;
}
}
};