项目场景:
提示:这里简述项目相关背景:
链表练习题
问题描述:
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
原因分析:
提示:这里填写问题的分析:
1.按照常规的思路,需要先遍历一次链表,统计节点个数,再再第二次遍历中获取要寻找的倒数第K个结点
2.也可以用栈,直接POPk就行了,但是效率太低了
解决方案:
提示:这里填写该问题的具体解决方案:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
int kthToLast(struct ListNode* head, int k)
{
int len=0;int i;
struct ListNode* cur=head;
while(cur!=NULL)
{
len++;
cur=cur->next;
}
i=len-k;
while(i)
{
head=head->next;
i--;
}
return head->val;
}