c++语言,对一个不带头结在带头节点的单链表表,将相邻两节点互换位置,如1->2->3>4互换后为2->1->4->3;

LinkListLL是我创建的不带头节在带头节點的单链表表,当我进行删除操作时一个LinkList的变量LinkListp的值刚好有p=L,然后我free(p);之后L就出错误了........希望大神们提供一个不带头节... LinkList LL是我创建的鈈带头节在带头节点的单链表表,当我进行删除操作时一个LinkList的变量LinkList

删除头和删除其他节点的算法是不一样的,必须分开写删除头的时候必须允许修改头节点指针,所以应该用二重指针建议这样写:

//删除p之后的一个节点

你上边的代码肯定会出错啊,你的意思是不是这样

暂且当成这样:错误之处是,P和L指向的是同一块内存你把p释放了,那L肯定就报错了啊!

你的里面没有new啊所以就不用free

我要回帖

更多关于 在带头节点的单链表 的文章

 

随机推荐