#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-08-04 10:41:57 发布