首页 > 代码库 > 以指针和引用两种参数实现删除单链表L中所有值为X的结点的函数
以指针和引用两种参数实现删除单链表L中所有值为X的结点的函数
下面是单链表的数据结构
typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*Linklist;
1.以指针参数实现
void delete_x_1(LNode *head,ElemType x){//head为单链表头结点,删除结点的值为x LNode *l = head; LNode *p = head->next; while(p != null){ if(p->data =http://www.mamicode.com/= x){>
这是最一般的方法,使用指针来实现。
2.以递归跟引用参数实现
void delete_x_2(Linklist &L,ElemType x){//为单链表头结点引用,删除结点的值为x LNode *p; if(L == null){ return; } if(L->data =http://www.mamicode.com/= x){>有些人认为直接free掉p结点会造成断链,实际上因为L为引用,是直接对原链表进行操作,因此不会断链。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。