题目大意
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
思路
双指针,第一个p先走k部,然后q从head开始,pq同时走,直到p为空,q就是索要的节点
设p与结尾查x次,总长k+x次,p走了x次,也就是倒数k
代码实现
int kthToLast(ListNode* head, int k) {
ListNode* c=head;
while(k){
head=head.next;
k--;
}
while(head){
c=c.next;
head=head.next;
}
return c.val;
}