题目:输入一个链表,输出该链表中倒数第k个结点。
* 思路:两个指针节点:node、head、head节点先移动k-1后,两个指针同时往后移动,head到达末尾的时候,node节点
* 所在的位置就是第K个节点所在的位置
* 返回null的情况:链表节点为空,k<=0时、k>链表长度
public class FindKthNode {
public static ListNode FindKthNode(ListNode head,int k){
if(head ==null || k<=0){
return null;
}//链表为空/k<=0时
ListNode node = head;//另一个指针节点node
for(int i = 1;i < k;i++){
if(head.next == null){//链表的长度<k
return null;
}else {
head = head.next;//head向前移动k-1位
}
}
while (head.next != null){
head = head.next;
node = node.next;//head、node向后移动直到head移动到链表尾部
}
return node;
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}