/**输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。
如果该链表长度小于k,请返回一个长度为 0 的链表。
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead ListNode类
* @param k int整型
* @return ListNode类
*/
struct ListNode* FindKthToTail(struct ListNode* pHead, int k) {
// write code here
if (pHead == NULL)//判断是否为空
{
return NULL;
}
struct ListNode* p = pHead;//链表指针
int i = 0;
int j = 0;
while (p->next != NULL)//链表长度
{
p = p->next;
j++;
}
if (j + 1<k)//判断k是否大于链表长度
{
return NULL;
}
i = j + 1 - k;//i标记K字符位置
j = 0;
p = pHead;//再次遍历
while (i != j)
{
p = p->next;
j++;
}
return p;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交