1 建立单链表
SingleNode* SetUpLinkList()
{
SingleNode* head = new SingleNode;
bool is_add = true;
int data = -1;
SingleNode* p = head;
while(1) {
cin >> data;
if (0 == data ) break;
SingleNode* cur = new SingleNode;
cur->data = data;
cur->next = NULL;
p->next = cur;
p = cur;
}
head = head->next;
return head;
}
2 反转单链表
SingleNode* ReverseLinkList(SingleNode*head)
{
if (NULL == head) return NULL;
SingleNode*f = head;
SingleNode*s = head->next;
head->next = NULL;
while(NULL != s) {
SingleNode* tmp = s->next;
s->next = f;
f = s;
s = tmp;
}
head = f;
return head;
}