题目内容:
返回链表的倒数第k个元素
实现思路:
采用双指针:
1.定义两个指针left,right指向表头;
2.先让right后移k个位置;
3.两个指针同时开始移动知道right指向NULL此时left指向的即为倒数第k个结点。
代码实现:
int kthToLast(){
LNode *right = L;
LNode *left = L;
//先将right向后移动k个位置
while(k --){
// k=0时while停止循环
right = right->next;
}
//两个指针同时向后移动,当right指向空时left指向倒数第k个结点
while(right != NULL){
left = left->next;
right = right->next;
}
return left->data;
}
题目收获:
1.while(条件)当括号内的值为0时停止循环,先判断k,再做k--;
2.双指针——定一动一,同时动(就本题而言)