这道题我用的是创建循环链表的方法。
注意链表的构建:
struct ListNode{
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
里面构造函数的这种写法一定牢记。可以把这一段专门记下来。
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
int main()
{
int N;
ListNode *head, *tail;
while(cin >> N){
for(int i = 0; i < N; ++i){
ListNode* newnode = new ListNode(i);
if(i == 0){head = newnode; tail = newnode;}
tail->next = newnode;
tail = newnode;
}
tail->next = head;
ListNode* node = head;
while(node->val != node->next->val){
ListNode* last = node->next;
last->next = last->next->next;
node = last->next;
}
cout << node->val << endl;
}
}