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;
        }
    
    }
    
  • 相关阅读:
    查看kafka版本号
    This service allows sftp connections only. 解法
    raid5和raid10的异同
    mpstat命令
    力扣 2020.06.27
    力扣 2020.06.22
    windows10 LTSC 2019 激活
    shell 不等式的表示方法
    C#后台判断一个网站的有效性代码
    C#去除DataTable中的重复数值
  • 原文地址:https://www.cnblogs.com/zsiscool/p/13370089.html
Copyright © 2011-2022 走看看