用递归遍历到最后一个元素,从最后一个元素开始操作。设P逆置链表的尾指针,在尾指针后面不断加入新的元素即可。
#include <iostream>
using namespace std;
struct node{
int x;
node *next;
node(int x = 0, node *next = NULL) : x(x), next(next){}
};
class lst{
public:
lst(){
head = NULL;
size = 0;
}
~lst(){
while (head->next)
{
node *p = head->next;
head->next = p->next;
delete p;
}
delete head;
size = 0;
}
void push_back(int value){
node *p = head;
if (p == NULL){
p = new node(value);
head = p;
}
else{
while (p->next){
p = p->next;
}
p->next = new node(value);
}
size++;
}
void push_front(int value){
node *p = he