输入一个链表输出该链表中的第k个节点
package mypack1;
import java.util.List;
//就是要哪个节点的值就返回哪个节点的值
public class test {
//输入一个链表输出该链表中的第k个节点
//链表中倒数第k个节点就是也就是正数第(L-k+1个节点)
//首先两个节点指针,一个节点node1开始跑指针node跑到k-1个节点后,另一个节点node2开始跑
//当node1跑到最后时,node2所指的节点就是倒数第k的节点,也就是正数第 l-k+1个节点
public listNode FindKthToTail(listNode head,int k){
//传入一个链表
//传入的一个k值
//如果链表为空或者k小于等于0
if(head==null||k<=0){
return null;
}
//声明两个指向头结点的节点 这两个节点都是指向头节点
listNode node1=head,node2=head;
//用来记节点的个数
int count=0;
//用来记录k的值
int index=k;
while (node1!=null){
//指向下一个节点 注意这一是从头结点开始
node1=node1.next;
//用来记录节点数的加加
count++;
//如果传入的k小于1
if(k<1){
//节点2指向下一个
node2=node2.next;
}
//如果k大于等于1,那么k--;
k--;
}
//如果节点的记录数 小于传进来的那个值
if(count<index) {
//返回Wie空
return null;
}
//把节点返回来
return node2;
}
public static void main(String[] args) {
test test1=new test();
listNode a = new listNode(1);
listNode b = new listNode(2);
listNode c = new listNode(3);
listNode d = new listNode(4);
listNode e = new listNode(5);
a.next = b;
b.next = c;
c.next = d;
d.next = e;
listNode node = test1.FindKthToTail(a, 1);
System.out.println(node.val);
}
}
命运 往往 笼罩着 不可预知,
充满 偶然性的 迷雾。
命运 往往 荆棘丛生,
充满坎坷。
在苦难中 磨炼意志,
在挑战中 超越自我,
是打开 命运枷锁 的钥匙。