Advertisement

76-数据结构——逆置链表的六种实现方法

阅读量:

一:逆置链表的六种方法

1.一个指针,很不好,效率很低,总是要频繁的申请和释放节点

2.两个指针,时间复杂度O(n),空间复杂度O(1)

3.三个指针,时间复杂度O(n),空间复杂度O(1)

4.栈,时间复杂度O(n),空间复杂度O(n),开辟了n个节点的栈

5.递归,时间复杂度O(n),空间复杂度O(n),递归n次

6.不带头节点的逆置(三指针法),时间复杂度O(n),空间复杂度O(1)

二:代码

1.一个指针(很不好,效率很低)

复制代码
    //逆置链表————一个指针(很不好,效率很低)
    //这种方法虽然可以,但是效率很低,总是频繁的申请和释放节点
    #include "list.h"
    #include <assert.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    void Reverse_1(List plist)
    {
    	assert(plist != NULL);
    	if (plist == NULL || plist->next == NULL || plist->next->next == NULL)
    	{

全部评论 (0)

还没有任何评论哟~