一、链表的创建(自己c++写的代码)
#include<iostream>
#include<string>
#include<vector>
using namespace std;
struct ListNode
{
int m_nKey;
ListNode *m_pNext;
ListNode(int a) {
m_nKey=a;
m_pNext=NULL; //如果没有构造函数初始化值,程序会报错
}
};
int main(){
int n,value,k;
ListNode *head=new ListNode(0);
while(cin>>n){
cout<<"start:"<<endl;
ListNode *q=head;
for(int i=0;i<n;++i){
cin>>value;
ListNode *p= new ListNode(0); //c++中分配动态内存
p->m_nKey = value;
p->m_pNext = NULL;
q->m_pNext = p;
q = p;
}
while(head->m_pNext!=NULL){
head=head->m_pNext;
cout<<head->m_nKey<<endl;
}
cout<<"end!"<<endl;
}
return 0;
}
二、输出单链表中倒数第k个节点,题目特简单,但是要注意边界情况,比如,k>n和k<0,如果是这样则输入错误,如果k=0,就输出0. 牛客网上已完成,请自己查阅