题目大意
实现一种算法,找出单向链表中倒数第 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
;
}