public class A13 {
/**
* 输入一个单向链表,输出该链表中倒数第k 个结点。
* 链表的倒数第0 个结点为链表的尾指针。
* */
/**
* @param args
*/
public static void main(String[] args) {
LinkedNode linkNode = new LinkedNode();
int[] array = {1,2,5,6,7,8,9,0};
linkNode = LinkedNode.intitLinkList(array);
int k = 1;
System.out.println(getLinkNode(linkNode,k));
}
/**
* @param k
* @return
*/
private static int getLinkNode(LinkedNode linkNode,int k) {
LinkedNode node = linkNode;
int length = 0;
while(node.getAfter() != null){
length++;
node= node.getAfter();
}
System.out.println("total have "+length+1+" elements");
//说是第几个元素的时候,一般开始的时候就是第一个
int i = 1;
while(linkNode.getAfter() != null){
if(i == length-k+1 ){
return linkNode.getValue();
}
i++;
linkNode= linkNode.getAfter();
}
//再上面的while(条件) 条件判断时,最后一个节点是不能够通过判断的
if(i == length-k+1 ){
return linkNode.getValue();
}
return Integer.MAX_VALUE;
}
}
单向链表倒数第K个节点
最新推荐文章于 2020-11-19 11:04:40 发布