您的位置:首页 > 理论基础 > 数据结构算法

数据结构练习(08)链表中倒数第k个结点

2012-12-12 11:04 344 查看
http://zhedahht.blog.163.com/blog/static/2541117420072114478828/


这道题的代码有大量的指针操作。在软件开发中,错误的指针操作是大部分问题的根源。因此每个公司都希望程序员在操作指针时有良好的习惯,比如使用指针之前判断是不是空指针。这些都是编程的细节,但如果这些细节把握得不好,很有可能就会和心仪的公司失之交臂。



struct Node {
int key;
Node *next;
};

Node* findkth2tail(Node *head, unsigned int k)
{
if (head == NULL)
return NULL;

Node *p1, *p2;
p1 = head, p2 = NULL;

for (int i = 0; i < k; ++i)
{
if (p1->next != NULL)
p1 = p1->next;
else
return NULL;
}

p2 = head;

while (p1->next != NULL)
{
p1 = p1->next;
p2 = p2->next;
}

return p2;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: