番号は図面の前後よりも大きい場合には、アレイ内の二つの数字は、2つの数字は逆対を形成します。配列を入力し、この配列P.逆ペアの総数を見出します P結果モジュロ十億七を出力します。すなわち、出力P%十億七
二つの入力リスト、その第1の共通のノードを見つけます。
最初のリストと交差すると、2つの後ろにリストノードが等しい、二つのリストの交差点の後、確かにX字状ではありません
最初の2を取得し、その後、長いリストを手放すために、リストの長さ、ノードの数が2つのリストの間の差の長さを行くことである、2つのリストそれぞれの人が同じノードであるかどうかを各ステップ、裁判官、 。
/*
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;
}
}
};