struct Node {
Node(int v) : value(v), pre(NULL), next(NULL) {}
int value;
Node *pre;
Node *next;
};
Node* reverse_list(Node *node) {
Node* NodePre = nullptr;
Node* NodeCurrent = node;
while (NodeCurrent != nullptr) {
NodeCurrent->pre = NodeCurrent->next;
NodeCurrent->next = NodePre;
NodePre = NodeCurrent;
NodeCurrent = NodeCurrent->pre;
}
return NodePre;
}