单链表中通过某一结点指针删除该结点

来源:互联网 发布:迈阿密大学知乎 编辑:程序博客网 时间:2024/06/05 21:15

删除p指向的结点:

思路:

把p的下个结点内容拷贝到p,然后删除p的下个结点;



/*考虑的情况:1. p是空2.p 指向单链表最后一个结点;3.p 指向单链表的头结点*//*input :P,将要删除结点的指针output : 1(成功),0(失败),-1(失败,但是把结点删除了)功能:删除链表中的结点*/int deleteTheNodeInList(LinkNode *p){int returnState=1;LinkNode *delNodeP;//指向实际删除结点的指针 if(NULL==p) return 0; else if(NULL==p->next) { delNodeP=p; returnState=-1;//当是尾结点时候直接删除,但是返回状态-1;当然也可不删除,把他内容全部清0 } else { delNodeP=p->next; returnState=2; memcpy(p,delNodeP,sizeof(*p)); }delete delNodeP;return returnState;}







原创粉丝点击