算法描述:
给出一个单向链表的头指针(根指针),输出该链表中倒数第k个节点的指针。链表的倒数第0个节点的尾节点(尾节点的next成员为NULL)。函数find_node实现上述功能,链表节点定义及函数声明如下,请实现函数find_node。
typedef struct Node
{
struct Node *next;
}Node;
Node *find_node(Node *head, unsigned, int k);
算法实现:
typedef struct Node
{
struct Node *next;
}Node;
Node *find_node(Node *head, unsigned int k)
{
int cnt = 0;
Node *p = head;
while(p)
{
cnt++;
p = p->next;
}
if (cnt < k)
return NULL;
cnt = cnt - k - 1;
p = head;
while(cnt--)
p = p->next;
return p;
}