在之前创建的链表的基础上,访问链表的倒数第k个元素。
#include<iostream>
#include<cstring>#include<vector>
#include<assert.h>
using namespace std;
struct ListNode
{
int m_key;
ListNode* next;
};
void createList1(ListNode* pHead)
{
ListNode* p=pHead;
for(int i=1;i<10;i++)
{
ListNode*pNewNode=new ListNode;
pNewNode->m_key=i;
pNewNode->next=NULL;
p->next=pNewNode;
p=pNewNode;
}
}
ListNode* FindKthNode(ListNode* pHead,int k)
{
ListNode* p1=pHead;
ListNode*p2=NULL;
for(int i=0;i<k-1;i++)
{
p1=p1->next;
}
p2=pHead;
while(p1->next!=NULL)
{
p1=p1->next;
p2=p2->next;
}
return p2;
}
int main()
{
ListNode*head=NULL;
head=new ListNode;
head->m_key=0;
head->next=NULL;
createList1(head);
ListNode* p=FindKthNode(head,2);
cout<<p->m_key<<endl;
while(head!=NULL)
{
cout<<head->m_key;
head=head->next;
}
cout<<endl;
}