题目:
是否自己写出来:是
?
解题思路:这题和昨天的876.链表的中间节点很像,观察完题目发现返回k下标其实和计数器count有关所以我们只需要,利用计数器遍历链表记录链表里面数据的个数,然后再写个函数实现就行了
?其他解题思路:通过学习别人的解题思路了解到还可以用到快慢指针来做,快慢指针都指向头结点,然后让快指针先走k步,然后让快指针与慢指针同时走,如果快指针为空则结束循环
解题代码:
class Solution {
public int kthToLast(ListNode head, int k) {
int num=count(head);
return findnum(head,num-k);
}
public int count(ListNode head){
int count=0;
ListNode cur = head;
while(cur!=null){
cur=cur.next;
count++;
}
return count;
}
public int findnum(ListNode head,int count){
ListNode cur = head;
while(count>0){
cur=cur.next;
count--;
}
return cur.val;
}
}