`

链表(一)单链表反转

 
阅读更多

一、单链表反转

 

                  我立马想到的解决思路:=》用一个堆栈、或者数组集合类的过一遍存储,倒叙重排

                                    百度后思路:=》非递归实现

                                                          =》递归实现

 

二、实现

 

 //print reverse use the not recursion
        public static Chain reverseMethod(Chain head) {
            Chain pre = null;
            Chain cur = head;
            Chain nex=null;

            while (cur!= null) {
                nex= cur.Next;
                cur.Next = pre;

                pre = cur;
                cur = nex;
            }
            return pre;
        }

 

  //print reverse use the recursion
        public static Chain recursionReverse(Chain head) {
         if(head==null||head.Next==null)return head;

         Chain temp = recursionReverse(head.Next);
         head.Next.Next = head;
         head.Next = null;
         return temp;

        }

 

分享到:
评论

相关推荐

    C++ 单链表反转 C++ 单链表反转

    单链表反转是一个常见的操作,它将链表中的节点顺序颠倒。给定的代码实现了一个函数`Reverse`来完成这个任务。下面我们将详细讨论这个反转过程。 首先,我们需要检查输入的链表头是否为空。如果为空,则无需反转,...

    单链表反转 链表相交

    实现了一个简单的java版本的单链表,链表反转和链表是否相交如果相交求相交节点。关于链表是否相交是一次阿里的面试的在线试题,挂的很彻底。然后就在网上找了几个实现思路自己用java做了一个简单的实现....

    Java算法篇-单链表反转详解.pptx.pptx

    熟练掌握单链表反转能够加深对链表这种基础数据结构的理解,并在解决更复杂的数据结构和算法问题时提供坚实的基础。因此,无论作为初学者还是资深开发者,深入理解单链表及其反转算法,都是不断进步的必经之路。

    链表创建,单链表反转,逆序打印等等

    以上就是关于链表创建、单链表反转以及逆序打印的基本介绍。这些操作在面试中经常被考察,理解并熟练掌握它们对于成为一名合格的程序员至关重要。链表作为数据结构的基础,它的应用广泛且灵活,理解和运用好链表能...

    单链表反转python实现代码

    单链表反转的python实现,简洁详细易于理解,附带注释易于分析

    C语言O(1)空间复杂度实现单链表反转

    用C语言O(1)空间复杂度实现单链表反转,C语言数据结构的作业,有需要的尽管拿去用吧,赚点小分,无聊腻了

    C语言实现单链表反转

    C语言实现单链表反转是指在C语言中实现单链表的反转操作,即将链表的结点顺序颠倒过来。这个操作需要对指针有深入的理解,否则很容易出现指针丢失和内存泄漏的问题。 一、理解指针 要想写对链表代码,首先就要理解...

    C++ 数据结构 链表

    在C++中实现这些链表,我们通常会创建一个链表类,它可能包含节点类作为私有成员,以及一系列公有方法来执行各种操作,如添加新节点、删除特定节点、查找元素、反转链表等。这些方法通常会通过迭代或递归的方式来...

    单链表的反转(原地反转法 && 新建链表插入法)

    c++ 实现单链表的反转(原地反转法 && 新建链表插入法)

    链表反转的C语言程序

    定义一个5个节点的单链表,然后通过指针的移动调换链表节点的顺序,从而实现链表的反转

    单链表的就地反转

    我们首先调用initlist函数来初始化单链表,然后调用traverse函数来输出链表的原顺序,接着调用Reverse函数来实现单链表的就地反转,最后调用traverse函数来输出链表的反转顺序,最后调用destroy函数来摧毁单链表。...

    链表反转C++源代码

    设计一个将输入数据建立成链表、输出链表数据、利用原空间把链表反转的程序代码。

    单链表实现反转的3种方法示例代码

    单链表反转是指将单链表中的节点顺序颠倒,使得原来的最后一个节点变成第一个节点,原来的第一个节点变成最后一个节点。例如,原始链表为1->2->3->4->5,反转后变为5->4->3->2->1。 方法1: 两两节点之间不断交换 ...

    数据结构和算法必知必会的50个代码实现.zip

    实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 栈 用数组实现一个顺序栈 用链表实现一个链式栈 编程模拟实现一个浏览器的前进、后退功能 队列 用数组实现一个顺序队列 用链表...

    链表-基于Java的单链表基本操作之链表反转.zip

    链表 链表_基于Java的单链表基本操作之链表反转

    数据结构和算法必知必会的50个代码实现

    实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 栈 用数组实现一个顺序栈 用链表实现一个链式栈 编程模拟实现一个浏览器的前进、后退功能 队列 用数组实现一个顺序队列 用链表实现一个...

    数据结构和算法必知必会的50个代码实现源码.zip

    数组实现一个支持动态扩容的数组实现一个大小固定的有序数组,支持动态增删改操作实现两个有序数组合并为一个有序数组链表实现单链表、循环链表、双向链表,支持增删操作实现单链表反转实现两个有序的链表合并为一个...

    基于Java实现的单链表基本操作之链表反转.zip

    在这个基于Java实现的单链表基本操作中,我们将重点关注链表反转这一特定操作。 链表反转是编程面试中常见的问题,它要求我们改变链表中节点的顺序,使得原链表的最后一个节点成为新链表的第一个节点,原链表的第一...

    单链表的反转,冒泡和选择排序

    通过这些文件,你可以进一步了解和学习单链表反转、冒泡排序和选择排序的具体实现细节。在实际编程中,理解并熟练掌握这些基础知识是非常重要的,它们不仅在面试中常被问到,也是构建更复杂数据结构和算法的基础。

    单链表 单链表 单链表 链表

    在C语言中实现单链表的各种功能,首先需要定义一个结构体类型来表示链表节点。例如: ```c typedef struct Node { int data; // 数据域,这里假设存储整型数据 struct Node* next; // 指针域,指向下一个节点 } ...

Global site tag (gtag.js) - Google Analytics