1 import java.util.Iterator;
2 import java.util.LinkedList;
3
4 public class Fast {
5
6 /**
7 * 在链表中很多题目的解法都跟大小指针有关。
比如这道题目,设立两个指针,一个单步走,一个两步走,
当大步指针到达链表尾部的时候,小步指针也正好位于链表中间位置。算法实现如下:
8 */
9 public static void main(String[] args) {
10 LinkedList head = new LinkedList();
11 head.add("a1");
12 head.add("a2");
13 head.add("a3");
14 head.add("a4");
15 head.add("a5");
16 head.add("a6");
17 head.add("a7");
18 head.add("a8");
19
20
21 locate(head);
22
23 }
24
25 public static void locate(LinkedList head) {
26 String str1 = null;
27 String str2 = null;
28 for (int i = 0; i *2< head.size(); i++) {
29 str1 = (String) head.get(i);
30 str2=(String) head.get(i*2);
31 }
32 System.out.println("中间节点是" + str1);
33
34 }
35
36 }