思路:先遍历一次链表,获得它的长度。再计算需要访问几个节点才能找到倒数第k个节点
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode getKthFromEnd(ListNode head, int k) {
ListNode cur = head ;
if(head == null ) return null;
int len = 0;
while (cur != null){
cur = cur.next;
len++;
} // 获得链表长度
int cnt = len - k; // 需要访问节点的个数
while(cnt -- > 0){
head = head.next;
}
return head ;
}
}