一、采用尾插入法构建链表
链表的构造函数有三种写法,都不写的话默认为第一种。
#include <iostream>
using namespace std;
struct ListNode{
int val;
ListNode* next;
ListNode():val(0),next(nullptr){}
ListNode(int x):val(x),next(nullptr){}
ListNode(int x,ListNode* next):val(x),next(next){}
};
void print(ListNode *h){
while(h!=nullptr){
cout<<h->val;
h=h->next;
}
}
int main(){
int n;
cin>>n;
int x;
cin>>x;
ListNode* a=new ListNode(x);//要先初始化第一个节点的值,不然链表的初始值就是0
ListNode* r=a;
for(int i=1;i<n;i++){
cin>>x;
ListNode* temp=new ListNode();
temp->val=x;
r->next=temp;
r=temp;
//insert(a,x);
}
r->next=nullptr;
print(a);
return 0;
}
输出结果为:
链表长度为3,节点分别为4,5,6。(尾插入法)