美文网首页Java学习笔记Java 杂谈Java
链表逆序输出数值(并且不能改变链表结构)

链表逆序输出数值(并且不能改变链表结构)

作者: firststep | 来源:发表于2019-04-09 16:21 被阅读2次

链表逆序输出数值

创建一个链表之后,翻转该链表返回一个链表,该链表由node1->node2->node3变成node3->node2->nod1.同时不能改变结构。

思路

首先拿到这道题第一想法是,如何把node的next当成pre来用。肯定是需要先循环中把最后面的一个放到最前面。定义两个node,一个nextnode一个prenode。先拿出node的下一个赋给nextnode方便下一步的调用,接着把该节点node的值指向prenode,下一步把node的值赋给nodepre等待下一个node的连接。最后把nextnode的值赋给node继续循环。

代码

package likendListStudy;

public class ReverseLinkedListNotChange {

    public Node ReverseList(Node node) {
        if (node == null) {
            return null;
        }
        Node nodePre= null;
        Node nodeNext= null;
        while (node != null) {
            // 首先拿到链表下一个要拿的node
            nodeNext = node.getNest();
            // 把node下一个存成定义好的上一个pre。
            node.setNest(nodePre);
            // 把node放到pre中
            nodePre = node;
            // 把要查的节点赋给node
            node = nodeNext;
        }
        return nodePre;
    }

    void printList(Node node) {
        while (node != null) {
            System.out.print(node.getData()+",");
            node = node.getNest();
        }
    }

    public static void main(String args[]) {
        Node node = new Node(1);
        Node node1 = new Node(2);
        Node node2 = new Node(3);
        Node node3 = new Node(4);
        Node node4 = new Node(5);
        node.setNest(node1);
        node1.setNest(node2);
        node2.setNest(node3);
        node3.setNest(node4);
        ReverseLinkedListNotChange reverseLinkedListNotChange = new ReverseLinkedListNotChange();
        Node nodef= reverseLinkedListNotChange.ReverseList(node);
        reverseLinkedListNotChange.printList(nodef);
    }
}

相关文章

  • 链表逆序输出数值(并且不能改变链表结构)

    链表逆序输出数值 创建一个链表之后,翻转该链表返回一个链表,该链表由node1->node2->node3变成no...

  • 逆序打印单链表

    题目描述: 逆序打印单链表,要求不能改变链表结构。 思路分析: 由于单链表只能顺序遍历(从头到尾遍历)而不能逆向遍...

  • 链表逆序输出数值

    链表学习 今天学习链表的时候,遇到这样一个问题,如何把链表逆序输出。拿到这道题首先想到的结构就是"栈"结构,因为它...

  • 翻转链表算法

    翻转链表的方法有很多,如果是逆序输出链表,并且链表不是特别长的情况可以考虑直接用递归,以压栈的形式输出,然而,很多...

  • 关于单链表、双向列表的一些算法

    首先给出数据定义的结构 单链表 1.单链表的逆序反转 单链表相邻节点反转 A-B-C-D 输出 B-A-D-C 双...

  • python算法-004逆序输出链表但是不改变链表结构

    志士惜日短,愁人知夜长。——晋.傅玄《杂诗》 努力学习吧!留给我们的时间不多了!先补上昨天忘记说的,昨天的插入法相...

  • 单链表逆序操作学习

    前言 将单链表逆序,方法有三种: 遍历链表,将每个节点的内容存入一个数组中,然后逆序输出数组,并重新构造一个链表 ...

  • 单链表 常用操作(golang)

    (单链表备忘记录)知识点: 单链表结构 创建链表方法头插法创建尾插法创建 遍历链表 逆序反转链表迭代递归头插法就地...

  • 面试常考的链表操作

    1、链表的结构 2、链表的逆序 3、找出倒数第k个 4、找出中间元素 5、判断链表是否有环

  • Python 将链表逆序

    说明:链表逆序,是将链表中的单向链表逆序,双向链表逆序和正序都是一样的,所以没有任何意义。 代码: class N...

网友评论

    本文标题:链表逆序输出数值(并且不能改变链表结构)

    本文链接:https://www.haomeiwen.com/subject/czqiiqtx.html