`
gaofen100
  • 浏览: 1227684 次
文章分类
社区版块
存档分类
最新评论

反转单向链表(reverse a singly linked list)

 
阅读更多

问题:

给一个单向链表,把它从头到尾反转过来。比如: a -> b -> c ->d 反过来就是 d -> c -> b -> a 。

这里讲解两种方法:

第一种方法就是把每个Node按照顺序存入到一个stack里面,这样,最后面一个就在最上面了。然后,把每一个再取出来,这样顺序就换过来了。


第二种方法就是利用两个指针,分别指向前一个节点和当前节点,每次做完当前节点和下一个节点的反转后,把两个节点往下移,直到到达最后节点。




分享到:
评论

相关推荐

    陈越、何钦铭-数据结构作业6:Reversing Linked List链表翻转

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→...

    C#,单向链表(Simply Linked List)快速排序(Quick Sort)算法与源代码

    各种数据结构、算法及实用的C#源代码.C#,单向链表(Simply Linked List)快速排序(Quick Sort)算法与源代码.单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部...

    单向链表 代码架构

    在“单向链表”这个压缩包中,我们可能找到一个实现了上述功能的源代码文件,比如包含`insertAtEnd`、`deleteNode`、`printList`和`sortList`等函数的实现。通过阅读和分析这些代码,学生可以深入理解链表的内部工作...

    单向链表类模板_单向链表类模板_fastchq_

    单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。在C++编程中,为了实现通用性,我们通常会使用模板类来创建单向链表,以便它可以处理不同类型的元素。标题"单向链表类...

    单向链表源代码

    单向链表是一种基本的数据结构,它在计算机科学中被广泛应用,特别是在算法和数据结构的实现中。在Java编程中,单向链表通常通过定义一个节点类来实现,每个节点包含数据和指向下一个节点的引用。下面我们将深入探讨...

    Linked List 链表 基础

    链表的基本类型包括单向链表(Singly Linked List)和双向链表(Doubly Linked List)。在单向链表中,每个节点只包含一个指向其后继节点的指针;而在双向链表中,除了包含指向后继节点的指针外,每个节点还包含一个...

    单向链表实验报告(数据结构)

    在本篇数据结构实验报告中,我们关注的核心是单向链表这一数据结构。单向链表是一种线性数据结构,每个节点包含一个数据元素和一个指向下一个节点的指针。实验使用VC++ 6.0作为编程工具,旨在通过实践来深入理解和...

    04.单向链表以及单向链表的应用.ppt

    04.单向链表以及单向链表的应用.ppt

    C#单向链表的实现

    本文将详细讲解如何在C#中实现单向链表,结合源码解析来帮助你深入理解其内部机制。 首先,我们要知道什么是单向链表。单向链表是由一系列节点组成,每个节点包含两个部分:数据域和指针域。数据域存储实际的数据,...

    danlianbiao.rar_singly linked list

    在这个"danlianbiao.rar_singly linked list"的资源中,我们将深入探讨如何创建、操作和管理这种数据结构。 首先,我们来看"建立(头插法)"部分。头插法是向单链表的头部添加新节点的方法。在创建一个空链表时,通常...

    单向循环链表python

    单向循环链表(Singly Circular Linked List)是一种特殊的链表,它与普通的单向链表非常相似,唯一的区别在于尾节点的next指针指向头节点而不是空。这样就形成了一个循环,使得链表中的节点可以通过循环遍历而不会...

    C语言实现的一个单向链表逆转

    ListNode* head = createLinkedList(); // 自行创建链表 // 逆转链表 head = reverseList(head, NULL); // 打印逆转后的链表 printLinkedList(head); // 自行实现打印链表的函数 return 0; } ``` 这个例子...

    实验二 单向链表的有关操作.cpp

    1.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。 2.遍历单向链表。 3.把单向链表中元素逆置(不允许申请新的结点空间)。 4.在单向链表中删除所有的偶数元素结点。 5.编写在非递减...

    VC 单向/双向链表模板类实例二则.rar

    除了单向链表的基本方法外,还会增加一些针对双向特性的方法,如`insertAfter(T val, T searchVal)`在特定节点之后插入新节点,`deleteBefore(T val)`删除某个节点前的节点,以及`reverse()`反转链表等。 在提供的...

    Java 单向链表 插入与删除节点

    这是一个单向链表,它具有插入与删除节点的功能。Entry类实现了链表的各节点。

    C#,单向链表(Simply Linked List)的归并排序(Merge Sort)算法与源代码

    C#,单向链表(Simply Linked List)的归并排序(Merge Sort)算法与源代码 归并排序法(3Merge Sort,以下简称MS)是分治法思想运用的一个典范。 其主要算法操作可以分为以下步骤: Step 1:将n个元素分成两个含n/...

    Java SE程序 类实现单向链表

    Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现...

    将一个单向链表反向连接

    将一个单向链表反向连接

    C#,单向链表(Simply Linked List)的插入排序(Insertion Sort)算法与源代码

    C#,单向链表(Simply Linked List)的插入排序(Insertion Sort)算法与源代码 所谓插入排序法乃是将一个数目插入该占据的位置。 假设我们输入的是 “5,1,4,2,3” 我们从第二个数字开始,这个数字是1,我们的...

    1273545169#Course_notes#反转单向或双向链表1

    题目描述分别实现反转单向链表和反转双向链表的函数。【要求】 如果链表长度为N, 时间复杂度要求为O(N), 额外空间复杂度要求为O(1)解题思路反转单向链表反转

Global site tag (gtag.js) - Google Analytics