输入一个链表,输出该链表中倒数第k个结点。
解题思路
利用两个指针:cur和pre:
1.pre先停在head处,让cur先走k个节点;
2.此时让pre和cur一起向前走,直到cur==null。
此时pre指向的点就是倒数第k个节点
需要考虑的两个问题
1.head为空,那么直接返回null;
2.链表长度小于k,此时直接返回null。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
ListNode pre = head;
ListNode cur = head;
for(int i = 0; i < k; i++){
if( cur == null) return null;
cur = cur.next;
}
while(cur != null){
pre = pre.next;
cur = cur.next;
}
return pre;
}
}