zoukankan      html  css  js  c++  java
  • 如何将链表反转

    实现单链表的反转

    实现单链表反转有多种方式  可以采用递归等方式实现

    下面实现方式为采用栈   栈先进后出原则

    package cn.ac.bcc.reverse;
    
    import java.util.Enumeration;
    import java.util.LinkedList;
    import java.util.Stack;
    
    /**
     * 实现一个单链表的反转
     * @author Administrator
     *  代码的健壮性  时间复杂度  代码规范
     */
    public class LinkReverser {
        
        public static void main(String[] args) {
            LinkedList<Integer> list = new LinkedList<Integer>();
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
            System.out.println(list);
            LinkedList newList = reOutput(list);
            System.out.println(newList);
        
        }
        /**
         * 采用栈  先进后出原则实现  反转
         * @param list
         * @return
         */
        public static LinkedList<Integer> reOutput(LinkedList<Integer> list){
            //创建一个栈
            Stack s = new Stack();
            //将数据添加到栈中
            for(Integer i:list){
                s.push(i);
            }
            //创建一个新的链表
            LinkedList<Integer> newList = new LinkedList<Integer>();
             //获取栈枚举类型元素集合
            Enumeration elements = s.elements();
            //判断当前是否存在下一个元素
            while(elements.hasMoreElements()){
                //取出栈顶元素  添加到新的链表中
                newList.add((Integer) s.pop());
            }
            return newList;
        }
    }
  • 相关阅读:
    struct&Method
    SetFinalizer、runtime.GC
    Map(没有写底层)
    数组和切片
    函数
    指针、Time
    字符串、strings、strconv
    基本类型和运算符
    第二阶段的事后诸葛亮
    第二个冲刺阶段第10天
  • 原文地址:https://www.cnblogs.com/lwdmaib/p/9276321.html
Copyright © 2011-2022 走看看