其实本程序主要考察C++指针的使用,可以使用一个指针向前行进k个元素之后,另一个指针才开始行进,直到第一个指针走到头为止。
/**
*
*/
package Chapter8_2;
import java.util.LinkedList;
/**
* @author MohnSnow
* @time 2015年5月2日 上午9:47:18
*
*/
public class chapter8_2_2 {
/**
* @param argsmengdx
* -fnst
* @title 移除未排序列表中的重复节点
*/
public static void findKValue(LinkedList<String> listTest, int k) {// 如果不使用缓冲区---么问题
System.out.println("倒数第 " + k + "个元素:" + listTest.get(listTest.size() - 4));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList<String> listTest = new LinkedList<String>();
listTest.add("1");
listTest.add("2");
listTest.add("3");
listTest.add("4");
listTest.add("5");
listTest.add("1");
listTest.add("1");
listTest.add("1");
listTest.add("1");
listTest.add("1");
listTest.add("6");
listTest.add("6");
listTest.add("5");
listTest.add("3");
listTest.add("5");
listTest.add("5");
listTest.add("7");
// System.out.println("链表的第一个元素是 : " + listTest.getFirst());
for (String str : listTest) {
System.out.print(str + " ");
}
System.out.println("");
int k = 4;// 找到倒数第K个结点
findKValue(listTest, k);
for (String str : listTest) {
System.out.print(str + " ");
}
}
}