删除第N个节点
思路:需保留第N个节点的上一个节点
将当前的节点的next赋值给上一个节点的next则可,再释放掉当前节点
链表插入到第N个节点
原理都是找到要使用的当前节点,新结点被当前节点指,前节点的next赋值给新结点的next
List::ListDelete
List::ListInsert
一个从栈里获得的指针指向一个从堆中获得的内存,是可以delete从栈中获得的指针的。
……
int* p = new int();
int* p1 = p;
delete p;
……
合法
bool List::ListDelete(int i,Node *pNode){
if(i<0||i>=m_iLength){
return false;}
Node *temp = m_pList;//找到头结点
int k=0;
while( k<i){
Node *currentNode=temp;
temp=temp->next;
k++;
}
currentNode->next=temp->next;
temp->data=pNode->data;
delete temp;
temp=null;
m_iLength--;
return true;
}
21341231