zoukankan      html  css  js  c++  java
  • 重学数据结构(四)——实现单链表的反转

    单链表反转

    思路:

    单链表反转:就是把每个节点的指针域由原来的指向下一个节点变为指向其前一个节点。
     
     思路:
     1.因为单链表没有指向前一个节点的指针域,所以这里需要创建一个指向前一个节点的指针pre,用于存储每一个节点的前一个节点。
     2.需要定义一个保存当前节点的指针cur,以及下一个节点的next。
     3.先创建cur(当前节点),pre(前一个节点)指针后,遍历单链表,将当前节点的指针域指向前一个节点,之后将定义的pre和cur指针往后移动,直至遍历到最后一个节点停止。
    

    Node类的实现

    package com.codezs.datastruct.mylinkedlist;
    
    public class Node<T> {
        T data;
        Node<T> next;
    
        Node(Node<T> next) {
            this.next = next;
        }
    
        public Node(T data, Node<T> next) {
            this.data = data;
            this.next = next;
        }
    
        public T getData(){
            return data;
        }
        public Node<T> getNext(){
            return next;
        }
        public void setNext(Node<T> next){this.next = next;}
    
    }
    
    package com.codezs.datastruct.mylinkedlist;
    
    public class LinkListReverse {
        //实现单链表的反转
        public static Node reverse(Node node){
            //当前节点
            Node cur = node;
            //前一个节点
            Node pre = null;
    
            while (cur != null){
                //取出当前节点的下一个节点
                Node next = cur.next;
                //当前节点的next指向前一个节点
                cur.next = pre;
                //前一个节点向后移动
                pre = cur;
                //当前节点向后移动
                cur = next;
            }
            return pre;
        }
    
    }
    
  • 相关阅读:
    vue关闭eslint
    ThinkPHP 5 项目执行慢问题排查
    Git 操作教程
    转】解决存储过程执行快,但C#程序调用执行慢的问题
    Centos8.0 安装Mongodb 命令步骤
    $TeX$ Gyre 字体安装过程与问题解决
    tomcat部署项目
    登录嵌套
    Django基础之
    win 常用命令
  • 原文地址:https://www.cnblogs.com/zsiscool/p/13370089.html
Copyright © 2011-2022 走看看