首页 > 代码库 > 链表中用标兵结点简化代码

链表中用标兵结点简化代码

标兵结点(头结点)是在链表中的第一个结点,不存放数据,仅仅是个标记
利用标兵结点可以简化代码。下面实现双向链表中的按值删除元素的函数,分别实现

带标兵结点和不带标兵结点两版本,对比可见标兵结点的好处。

结点声明如下:

struct Node
{
	int value;
	Node *prev;
	Node *next;	
}
int del_doublelist(Node*&h,int v)//不带标兵结点
{
	Node*p=h;
	while(p!=NULL&&p->value!=v)
	{
		p=p->next;
	}
	if(p==NULL)return 0;//空链表
	if(p->value=http://www.mamicode.com/=v)>
int del_doublelist(Node*&h,int v)//带标兵结点
{
	Node*p=h->next;
	while(p!=NULL&&p->value!=v)
	{
		p=p->next;
	}
	if(p==NULL)return 0;
	if(p->value=http://www.mamicode.com/=v)>

链表中用标兵结点简化代码