zoukankan      html  css  js  c++  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;
        }
     
    }

    所谓的单链表反转,就是把每个节点的指针域由原来的指向下一个节点变为指向其前一个节点。但由于单链表没有指向前一个节点的指针域,因此我们需要增加一个指向前一个节点的指针pre,用于存储每一个节点的前一个节点。此外,还需要定义一个保存当前节点的指针cur,以及下一个节点的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;
        }


    原文链接:https://blog.csdn.net/lwkrsa/article/details/82015364

  • 相关阅读:
    【YbtOJ#20238】最优路线
    【洛谷P3247】最小公倍数
    【洛谷P3261】城池攻占
    【YbtOJ#20236】红点蓝点
    【YbtOJ#20235】公共序列
    Wing IDE 4.1使用笔记一修正一下框框字体显示不了中文
    飘逸的python
    The 12th tip of DB Query Analyzer, powerful in text file process
    PHP网站如何解决大流量与高并发的问题
    【python】利用sftp及rsa密匙实现远程拷贝文件
  • 原文地址:https://www.cnblogs.com/dingpeng9055/p/11729744.html
Copyright © 2011-2022 走看看