C++循环链表的节点对换和删除

2014-11-01 09:00:07 · 作者: · 浏览: 69

  循环链表的节点对换和删除:


  //双向循环


  list_node* earse(list_node* node)


  {


  // if(node == rear) return node->next; //对于头节点可判断也可不判断。最好加上


  list_node* next = node->next;


  next->prev = node->prev;


  node->prev->next = next;


  delete node;


  retrun next;


  }


  //单项循环


  list_node* earse(list_node* node)


  {


  // if(node == rear) return node->next; //对于头节点可判断也可不判断。最好加上


  list_node* p = rear;


  while(p->next != node) p=p->next;


  p->next = node->next;


  delete node;


  retrun p->next;


  }


  编辑特别推荐: