颠倒单链表 Reverse the Linked List

来源:互联网 发布:windows vista oem下载 编辑:程序博客网 时间:2024/06/05 03:51
//use iterativevoid ReverseLinkedList(Node* head){if(head == NULL)return;Node* current, *pre, *next;current = head;pre = next = NULL;while(NULL != current){next = current->next;current->nxet = pre;pre = current;current = current->next;}head = pre;}


//use recursionvoid ReverseLinkedList(Node* head){if(head == NULL)return;Node* p = head;if(p->next == NULL){head = p;return;}ReverseLinkedList(p->next);p->next->nxet = p;p->next = NULL;}

//use stackvoid ReverseLinkedList(Node* head){if(head == NULL)return;stack <Node*> s;Node* tmp = head;while(NULL != tmp){s.push(tmp);tmp = tmp->next;}Node* p = s.top();s.pop();head = p;while(!s.empty()){p->next = s.top();s.pop();p = p->next;}p->next = NULL;}


0 0
原创粉丝点击