#include <iostream>
using namespace std;
typedef struct ListNode
{
int m_nKey;
ListNode* m_pNext;
}ListNode;
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k);
int main()
{
int n,k;
ListNode *p,*q;
ListNode* l=new ListNode();
q=l;
while(cin>>n)
{
while(n>0)
{
p=new ListNode;
q->m_pNext=p;
q=p;
cin>>q->m_nKey;
--n;
}
q->m_pNext=NULL;
cin>>k;
p=FindKthToTail(l,k);
if(p)
cout<<p->m_nKey<<endl;
p=l->m_pNext;
q=p->m_pNext;
while(q)
{
delete p;
p=q;
q=p->m_pNext;
}
delete p;
}
return 0;
}
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k)
{
ListNode *p,*q;
p=pListHead;
q=p->m_pNext;
while(q&&k)
{
q=q->m_pNext;
--k;
}
if(k>0)
return NULL;
while(q)
{
p=p->m_pNext;
q=q->m_pNext;
}
return p;
}
话不多说,这个代码写的很糟糕。。可读性太差,,也就自己这样随着自己了……
华为oj_输出单向链表中倒数第k个结点
最新推荐文章于 2023-01-13 10:45:39 发布
本文探讨了一个糟糕的代码实现,旨在通过详细分析和优化,展示如何改进代码结构,增强其可读性和可维护性。通过逐步剖析原始代码逻辑,作者提出了一系列重构建议,包括使用更清晰的变量命名、合理组织代码结构、以及优化算法实现等方法,最终目标是创建一个易于理解且高效运行的程序。

1857

被折叠的 条评论
为什么被折叠?



