struct Node { int Data; struct Node* next; }; /** * @brief 改函数实现单链表的反转 * @param[in] head 待反转的链表 */ int reverse(Node* head) { assert(head); if (NULL == head->next) { cout<<"listlink is Null!"<<endl; return -1; } Node* p = head->next; Node* q = p->next; // 考虑链表只有一个元素的情况 if (NULL == q) { cout<<"The ListLink has only one element!"<<endl; return 0; } Node* r = q->next; p->next = NULL; while (r != NULL) { q->next = p; p = q; q = r; r = r->next; } q->next = p; head->next = q; return 0; }
单链表的反转
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
简单的尾插法实现单链表
尾插法建立单链表
结点 头结点 链表 -
2.单链表逆置
单链表逆置
单链表逆置 List -
【DS】反转单链表@Leetcode —— 链表
特别特别特别经典的题目,必须要会!!!
链表 leetcode 数据结构 增删查改 基本操作 -
golang反转单链表
双链表不需要反转,只需要在引用时改变头的引用位置即可。 单链表反转,有2种
golang 开发语言 后端 List 链表 -
Go 反转链表、单链表的添加和显示、单链表的添加和显示控制反转
Go 反转链表、单链表的添加和显示、单链表的添加和显示控制反转
链表 golang 数据结构 控制反转 头插法