链表逆序
2013-09-02 20:53
92 查看
递归与非递归实现
#include<iostream> using namespace std; struct node{ int value; node* next; }; //非递归 node* func(node* head) { if(head==NULL || head->next==NULL) return head; node* p1 = head; node* p2 = p1->next; node* p3 = p2->next; while(p3) { p2->next = p1; p1 = p2; p2 = p3; p3 = p3->next; } p2->next = p1; head->next = NULL; return p2; } //递归 node* head_new; void func1(node* p) { if(p->next->next == NULL) { head_new = p->next; } else { func1(p->next); } p->next->next = p; p->next = NULL; } int main() { node* head = new node; node* pre = head; pre->value = 1; node* p; for(int i=2; i<=10; i++) { p = new node; p->value = i; pre->next = p; pre = p; } p->next = NULL; //head = func(head); //node* h = head; func1(head); head = head_new; node* h; for(h=head; h; h=h->next) cout<<h->value<<" "; cout<<endl; return 0; }
相关文章推荐
- 链表B 逆序建立链表
- leetcode | 单链表逆序 Reverse Linked List
- C 带头节点单链表逆序
- 单链表逆序
- c语言链表逆序的问题
- 链表的k值逆序
- 日常联系:一个C++程序完成链表的增加结点、删除结点、打印、查询、逆序等操作
- 单链表中一些经典的问题-->约瑟夫环,链表逆序,查找链表结点...(上)
- C语言笔试题(8)——链表逆序
- python实现链表逆序(反转函数)
- 逆序建链表
- 【每日算法】归并排序及其应用(逆序对&合并有序链表)
- 单链表逆序生成及逆置的完整实现
- 逆序链表的C程序
- 数据结构之链表:实现单链表的逆序 (1)
- 链表面试题逆序打印,删除无头非尾节点,非头位置插入,约瑟夫环,查找中间和倒数第k个节点
- C/C++面试之算法系列--典型的几个链表操作-逆序和重排
- 链表逆序
- 单链表操作大全(图解逆序)
- 链表逆序