#include <iostream>
using namespace std;
struct Node
{
int value;
Node *next;
};
int find(Node* head, int n) {
int index = -1;
while (head) {
++index;
if (head->value == n) {
return index;
}
head = head->next;
}
return -1;
}
int main()
{
Node *list = new Node{1, new Node{2, new Node{3, nullptr}}};
cout << find(list, 1) << endl;
cout << find(list, 2) << endl;
cout << find(list, 3) << endl;
cout << find(list, 4) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5vZGUKewoJaW50IHZhbHVlOwoJTm9kZSAqbmV4dDsKfTsKCmludCBmaW5kKE5vZGUqIGhlYWQsIGludCBuKSB7CiAgICBpbnQgaW5kZXggPSAtMTsKICAgIHdoaWxlIChoZWFkKSB7CiAgICAgICAgKytpbmRleDsKICAgICAgICBpZiAoaGVhZC0+dmFsdWUgPT0gbikgewogICAgICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgICAgfQogICAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OwogICAgfQogICAgcmV0dXJuIC0xOwp9CgoKaW50IG1haW4oKQp7CglOb2RlICpsaXN0ID0gbmV3IE5vZGV7MSwgbmV3IE5vZGV7MiwgbmV3IE5vZGV7MywgbnVsbHB0cn19fTsKCgljb3V0IDw8IGZpbmQobGlzdCwgMSkgPDwgZW5kbDsKCWNvdXQgPDwgZmluZChsaXN0LCAyKSA8PCBlbmRsOwoJY291dCA8PCBmaW5kKGxpc3QsIDMpIDw8IGVuZGw7Cgljb3V0IDw8IGZpbmQobGlzdCwgNCkgPDwgZW5kbDsKCglyZXR1cm4gMDsKfQ==