算法——找单链表中点
2015-07-23 15:05
211 查看
超级简单,做个记录。
设两个指针,一个每次走两步,一个每次走一步,到头了就是中点。
类似与找单链表倒数第几个元素这样到算法。
实现如下:
设两个指针,一个每次走两步,一个每次走一步,到头了就是中点。
类似与找单链表倒数第几个元素这样到算法。
实现如下:
package com.song.algorithm; public class FindMid { public static class Node{ Node next; String data; public Node(String data){ this.data = data; } } public static Node findMiddle(Node start){ Node prev; if(start == null ){ return null; }else{ if(start.next != null) { prev = start.next; }else{ return start; } } Node follow = start; while(prev.next != null){ prev = prev.next; if(prev.next != null){ prev = prev.next; follow = follow.next; }else{ break; } } return follow; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Node n1 = new Node("n1"); Node n2 = new Node("n2"); Node n3 = new Node("n3"); Node n4 = new Node("n4"); // Node n5 = new Node("n5"); // Node n6 = new Node("n6"); n1.next = n2; n2.next = n3; n3.next = n4; // n4.next = n5; // n5.next = n6; Node res = findMiddle(n1); System.out.println(res.data); } }
相关文章推荐
- 跨域的理解与实现
- Modbus协议
- 用 win2003 架设共享服务器
- JavaScript权威指南科13章 webj浏览器avascript
- .NET中进行Base64加密解密
- 叙述下列术语的定义并说明它们之间的关系:卷、块、文件、记录。
- 三层交换机3com 5500G-EI 网络广播风暴一事
- Cookie/Session机制详解
- Github优秀开源类库分类汇总
- scp 传文件
- HDU 2612 Find a way
- chrome断点续传功能
- 如何在JavaFX的WebView中通过JavaScript回调Java的程序
- java 中super 与 this区别
- vimrc配置--map
- 原型模式(Prototype Pattern)
- javascript之使用Ajax事件
- 中文 iOS/Mac 开发博客列表
- C#与JAVA平台RSA算法交互示例
- 反射(概述,Class对象和信息,使用反射生产并操作对象,数组,反射与框架)