美文网首页
单向链表反转-Java实现

单向链表反转-Java实现

作者: 指间砂的宿命 | 来源:发表于2018-12-21 14:50 被阅读3次

这个题目是之前参加面试时遇到的,题目基础要求是:给定指定节点数的单向链表,如何反转整个链表?
这个问题以前也遇到过几次,每次都是写完就忘了,这里记录下实现以备后面思考查看。

1.先自定义Node结构

class Node {
    private int value;
    private Node next;

    public Node(int value) {
        this.value = value;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    public Node getNext() {
        return next;
    }
}

2.初始化一个指定长度的单向链表

int i = 10;
Node firstNode = null;
Node lastNode = null;
while(i > 0) {
    Node temp = new Node(i);
    if(firstNode == null) {
        firstNode = temp;
    } else {
        lastNode.setNext(temp);
    }
    lastNode = temp;
    i--;
}

3.借助三个变量来实现整个单链表的反转

// Reverse this linked list
Node tailNode = null;
Node headNode = null;
Node tempNode = firstNode;
while(tempNode != null) {
    // Store the next node reference
    tailNode = tempNode.getNext();
    if(headNode == null) {
        // the first node, remove the next reference
        tempNode.setNext(null);
    } else {
        // set now node's next reference to the new head node
        tempNode.setNext(headNode);
    }
    // set the headNode reference to new node
    headNode = tempNode;
    // move the node to deal the next node
    tempNode = tailNode;
}
System.out.println(headNode);

相关文章

  • 链表

    一、单向链表 单向链表的普通实现 Java实现: Kotlin实现: 单向链表的递归实现 Java实现: 二、双向...

  • 单向链表反转-Java实现

    这个题目是之前参加面试时遇到的,题目基础要求是:给定指定节点数的单向链表,如何反转整个链表?这个问题以前也遇到过几...

  • 链表反转

    概述 链表反转是非常经典的面试题,要实现此功能,需先实现链表的数据结构。 链表类 获得单向链表方法 输出单向链表方...

  • 数据结构 - 单向链表及相关算法

    单向链表 链表常见算法 链表反转

  • 反转单向链表之Java实现

    背景 昨晚跟哥们打完篮球一起吃饭,由于好久不见就聊了很多,其中说到了一些他最近为找工作刷算法题的感想。其中一个就是...

  • 单向链表反转(含图解)

    前言 上次讲解了单向链表的原理《Java实现单向链表功能》,今天拓展一下实现链表的翻转。下面直接上代码。 链表初始...

  • 使用Java实现单向链表,并完成链表反转。

    使用Java实现单向链表,并完成链表反转。 算法和数据结构是程序员逃不过的一个坎,所以趁着闲余时间,开始学习基础的...

  • Java实现有环的单向链表,并判断单向链表是否有环

    Java实现有环的单向链表,并判断单向链表是否有环 有一个单向链表,链表当中有可能出现环,就像下图这样。我们如何判...

  • reverse linked list

    反转单向链表 demo 运行效果

  • 数据结构专题:1.单向链表反转与排序

    有如下单向链表 1.单向链表反转,递归 递归的方式其实是从尾节点开始进行指针反转,最终递归反转到头节点 2.单向链...

网友评论

      本文标题:单向链表反转-Java实现

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