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
    发布时间:
    原始链接:
  • 相关阅读:
    iOS开源控件库收集
    Ruby中的几种除法
    Font
    PlaySound
    STL
    APIs
    cin and cout
    CreateWindow
    Introducing Direct2D
    VC 常用代码
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/7679151.html
Copyright © 2011-2022 走看看