美文网首页
Java实现单链表反转操作

Java实现单链表反转操作

作者: 初心myp | 来源:发表于2019-06-13 14:12 被阅读0次

单链表是一种常见的数据结构,由多个结点连接而成,每一个结点后面都会跟一个指针,指向下一个结点的内存地址。所以,每一部分就是有一个数据域和一个指针域构成

编写思路:
所谓的单链表反转就是将链表的指针方向改变。但是,由于单链表没有指向前一个结点的指针,所以我们定义一个指向前一个结点的指针pre,用于存储每一个节点的前一个结点。接下来还需要定义一个保存当前结点的指针cur,以及下一个节点的next。定义好之后,遍历单链表,将当前结点的指针指向前一个结点,之后定义三个指针向后移动,直至遍历到最后一个结点为止。

Java代码如下:

public class Node {
    
    private Object data;//数据域
    private Node next;//指针域
 
    public Node(Object data){
        this.data = data;
    }
 
    public Node(Object data,Node next){
        this.data = data;
        this.next = next;
    }
 
    public Object getData() {
        return data;
    }
 
    public void setData(Object data) {
        this.data = data;
    }
 
    public Node getNext() {
        return next;
    }
 
    public void setNext(Node next) {
        this.next = next;
    }
 
}
public static Node reverseListNode(Node head){
        //单链表为空或只有一个节点,直接返回原单链表
        if (head == null || head.getNext() == null){
            return head;
        }
        //前一个节点指针
        Node preNode = null;
        //当前节点指针
        Node curNode = head;
        //下一个节点指针
        Node nextNode = null;
 
        while (curNode != null){
            nextNode = curNode.getNext();//nextNode 指向下一个节点
            curNode.setNext(preNode);//将当前节点next域指向前一个节点
            preNode = curNode;//preNode 指针向后移动
            curNode = nextNode;//curNode指针向后移动
        }
 
        return preNode;
    }

相关文章

  • Java实现单链表反转操作

    单链表是一种常见的数据结构,由多个结点连接而成,每一个结点后面都会跟一个指针,指向下一个结点的内存地址。所以,每一...

  • 单链表反转

    单链表反转 单链表初始化 输出 反转 释放 实现代码 尚未实现 元素插入 元素删除

  • 链表简单算法相关练习

    单链表反转: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 迭代方式实现: 复杂度分析: 时...

  • 链表

    单链表 C实现 Java实现 双链表 C实现 Java实现

  • 反转单链表(Java实现)

    如题: 定义一个方法(函数),实现输入一个链表的头结点,然后可以反转这个链表的方向,并输出反转之后的链表的头结点。...

  • 单链表反转-Java实现

    算法1(非递归实现):使用3个指针,分别指向前序结点、当前结点和后序结点,遍历链表,逐个逆转,时间复杂度O(n):...

  • 反转单链表Java实现

    问题描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 解题思路 为了实现反转单链表,...

  • 单链表反转问题

    基本问题 如何将单链表反转? 单链表结构定义 算法实现 进阶问题 如何将单链表在指定区间内进行反转? 问题分析 这...

  • Algorithm小白入门 -- 单链表

    单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表...

  • LeetCode链表专题

    (一)LeetCode206.反转链表 题目描述: 反转一个单链表。 代码实现 (二)LeetCode160. 相...

网友评论

      本文标题:Java实现单链表反转操作

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