package com.example.interview; import java.util.Iterator; import java.util.LinkedList; /** * Intro:标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号 * Author: zhangxutong * E-mail: mcxtzhang@163.com * Home Page: http://blog.csdn.net/zxt0601 * Created: 2017/2/13. * History: */ public class Ali_1_LinkedListTest { public static void main(String[] args) { int n = 10; LinkedList<Integer> list = new LinkedList<>(); for (int i = 1; i <= n; i++) { list.add(i); } Iterator<Integer> iterator = list.iterator(); int index = 1; while (iterator.hasNext()) { Integer next = iterator.next(); System.out.println("我是:" + next + ",我现在报数:" + index); if (index == 3) { System.out.println("!!!!我是:" + next + ",我现在退出:" + index); iterator.remove(); //删除以后才有可能是最后一个 if (list.size() == 1) { if (iterator.hasNext()) { System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!终于找到你:" + iterator.next()); } else { System.out.println("???????????????????????终于找到你:" + list.get(0)); } break; } } index++; if (index == 4) { index = 1; } if (!iterator.hasNext() && list.size() > 0) { System.out.println("毅种循环"); iterator = list.iterator(); } } } }