1. 问题描述
已知1个List: 1->2->3->4->5;
要求把List反转变为:5->4->3->2->1。
2. 问题分析
问题很简单,新创建一个list:
(1)从List中取首元素l;
(2)把这个元素l,按照前插法插入到list中
(3)重复(1)(2),直到List中没有元素
3. 算法实现
List* ReverseList(List *list)
{
if( list == NULL )
return;
List* new_list = NULL;
List* next_node;
while( list != NULL )
{
next_node = list->next;
list->next = new_list;
new_list = list;
list = next_node;
}//while
return new_list;
}
4. 算法分析
算法的复杂度为O(n)。