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
    发布时间:
    原始链接:
  • 相关阅读:
    golang 内存模型
    go-设计思想
    扁平化团队的实质
    技术团队的管理体系
    技术团队的目标管理
    从0到1打造直播 App
    管理你的项目
    JavaEE开发基础
    Java调优知识汇总
    从技术走向管理读书笔记
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/7679151.html
Copyright © 2011-2022 走看看