实现单链表的反转
实现单链表反转有多种方式 可以采用递归等方式实现
下面实现方式为采用栈 栈先进后出原则
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; } }