/**
* 只遍历一次单链表,将链表中的元素顺序反过来
* */
#include<iostream>
using namespace std;
struct list_node //链表节点
{
list_node* next;
int val;
};
list_node* reverse_list(list_node* node) //逆序
{
if(node==nullptr)
return nullptr;
else if(node->next==nullptr)
return node;
list_node* tem_node=node->next;
node->next=nullptr;
list_node* app_node;
while(tem_node->next)
{
app_node=tem_node->next;
tem_node->next=node;
node=tem_node;
tem_node=app_node;
}
tem_node->next=node;
return tem_node;
}
void create_test(list_node** pnode,int num) //创建测试用例
{
list_node* node;
list_node* tem=nullptr;
for(int i=0;i<num;++i)
{
node=new list_node();
node->val=i;
if(tem==nullptr)
{
*pnode=node;
}
else
{
tem->next=node;
}
tem=node;
}
}
void traverse_list(list_node* head) //遍历用例
{
while(head!=nullptr)
遍历一次链表,将元素反过来
最新推荐文章于 2023-09-17 14:03:27 发布
这篇博客介绍了如何通过一次遍历实现单链表的反转。作者提供了一个C++实现的函数`reverse_list`,该函数接收一个链表头节点,然后通过迭代方式将链表元素顺序反转。此外,还提供了创建测试用例、遍历链表和释放链表内存的辅助函数。博客中包含了完整的源代码示例。
摘要由CSDN通过智能技术生成