zoukankan      html  css  js  c++  java
  • 单链表反转

    设置链表数据结构

    typedef struct Node* List;
    struct Node{
    	int Data;
    	List Next;
    };
    

    反转链表,且不占用额外空间

    void Reverse(List &L) {
    	List pre, next;
    	pre = NULL;
    	while (L) {
    		next = L->Next;
    		L->Next = pre;
    		pre = L;
    		L = next;
    	}
    	L = pre;
    }
    

    反转链表,返回反转后的结果,原链表不受影响

    List Reverse(List L) {
    	List t;
    	t = NULL;
    	while (L) {
    		List p = (List)malloc(sizeof(List));
    		p->Data = L->Data;
    		p->Next = t;
    		L = L->Next;
    		t = p;
    	}
    	return t;
    }
    

    反转链表,返回翻转后的结果,原链表移到最后一个结点

    List Reverse(List L) {
    	PtrToNode t = NULL;
    	PtrToNode L2 = NULL;
    	while (L != NULL) {
    		t = L->Next;
    		L->Next = L2;
    		L2 = L;
    		L = t;
    	}
    	return L2;
    }
    
    转载请保留原文链接及作者
    本文标题:
    文章作者: LepeCoder
    发布时间:
    原始链接:
  • 相关阅读:
    CD4051
    sbit和sfr的定义
    EEPROM与FLASH的区别
    九LWIP学习笔记之最后的战役
    八LWIP学习笔记之用户编程接口(NETCONN)
    七LWIP学习笔记之传输控制协议(TCP)
    六LWIP学习笔记之用户数据报协议(UDP)
    java实现二叉查找树
    线程的锁对象
    MAP
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/7679151.html
Copyright © 2011-2022 走看看