美文网首页
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实现单链表反转操作

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