您的位置:首页 > 其它

双循环链表的逆置

2012-06-13 22:02 141 查看
nodetype *invert(nodetype *head)

{

 nodetype *p=head,*q,*s;

 if(p!=NULL)

 {

  q=p->next;

  head->next=head->left;/////逆置头结点

  head->left=p->next;

  while(q!=head)

  {

   s=q->next;

   q->left=q->next;

   q->next=p;

   p=q;

   q=s;

  }

 }

 return head;

}

 

因为每一个节点都有左右指针,所以要逆置的话,只要从头结点开始,让每一个节点的左指针指向右节点,右指针指向左节点就可以了。但是需要强调的一点是,在创建双循环链表的时候,注意对头指针的处理,头指针也是有左右指针域的,如果一直都忘了头指针要指向最后一个节点的话,交换指针之后,就打印不出来啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null qq