stl用多了好久没手写链表了,写着玩玩
#include <iostream> using namespace std; struct node{ int val; node*next = nullptr; }; int main() { int n = 0; while(cin>>n)//n值 { //创建头节点 node*head = new node; //加入第一个节点 { int temp = 0; cin>>temp; node*first = new node; first->val=temp; head->next=first; } //加入后续节点 for(int i = 0;i<n-1;i++) { int value;//要加入节点的值 int father;//父节点的值 cin>>value>>father; //找到要插入的位置 node*search=head->next; while(search) { if(search->val==father) { node*son=new node; son->val=value; son->next=search->next; search->next=son; break; } search=search->next; } } //删除指定值 { int del; cin>>del; node*search=head->next; while(search) { if(search->val==del) { if(search->next) { search->val=search->next->val; node*temp=search->next; search->next=search->next->next; delete temp; } } search=search->next; } } //打印链表 { node* search=head->next; while(search) { cout<<search->val<<" "; search=search->next; } cout<<endl; } //释放所有 node* search=head; while(search) { head=head->next; delete search; search = head; } } return 0; }