链表逆置For Java
2015-07-14 11:29
531 查看
Java版链表逆置
定义数据结构:
定义数据结构:
/** * 链表的数据结构 */ class LinkedListArray { /** * value */ Object value; /** * 下个节点 */ LinkedListArray next = null; public void setValue(Object value) { this.value = value; } public void setNext(LinkedListArray next) { this.next = next; } public Object getValue() { return value; } public LinkedListArray getNext() { return next; } }链表逆置方法:
/** * Created by hyson on 15/7/14. */ public class ListReverse { public static void main(String[] args) { LinkedListArray llr1 = new LinkedListArray(); llr1.setValue("链"); LinkedListArray llr2 = new LinkedListArray(); llr2.setValue("表"); LinkedListArray llr3 = new LinkedListArray(); llr3.setValue("逆"); LinkedListArray llr4 = new LinkedListArray(); llr4.setValue("置"); llr1.setNext(llr2); llr2.setNext(llr3); llr3.setNext(llr4); print(llr1); llr1 = reverse(llr1); print(llr1); } public static void print(LinkedListArray head) { LinkedListArray tmp = head; while (tmp != null) { System.out.print(tmp.getValue()); tmp = tmp.next; } System.out.println(); } /** * 链表逆置 * @param listHead 表头 * @return 逆置的链表 */ public static LinkedListArray reverse(LinkedListArray listHead) { LinkedListArray lastList,//剩余链表 tmpList, //暂存链表 result;//结果链表引用 lastList = listHead; tmpList = result = null;//暂存链表与结果集初始化为空 while (lastList != null) { tmpList = lastList.next;//暂存链表暂存除首节点外的剩余链表 lastList.next = result;//将首节点放入剩余链表头 result = lastList;//引用指向链表第一个位置 lastList = tmpList;//剩余链表引用重新指向暂存的剩余链表 } return result; } }
相关文章推荐
- MyEclipse新手配置集合
- Android 之 Eclipse没法生成R文件
- 第一周第一天([用文档编辑Java并运行] [Java中数据类型的转换][标题的使用] [引用的使用] [代码块的使用] [图片的使用] [JDK] [Eclipse])
- java 关键字之Transient
- springmvc配置多访问方法
- java之ArrayList源码解析
- java 视频转码
- UEditor1.43 springMVC 上传图片 配置文件初始化失败
- java中使用protobuf
- SpringMVC实战(三种控制器方式)
- Failed to load JavaHL Library解决方法
- Java中Runnable和Thread的区别
- JavaCodeTra 猴子选猴王 约瑟夫循环
- java之字符串的排序
- java构造函数加载
- 安装nutch--JAVA_HOME环境变量的配置
- idea14怎么导出java文档
- Spring MVC 解读——@Autowired
- (LeetCode)用两个栈实现一个队列
- 【java】论integer是地址传递还是值传递