C++实现单链表逆序

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  将一个单链表逆序:

  struct list_node

  {

  list_node(int a,list_node* b):data(a),next(b) //这个为了测试方便

  {}

  int data;

  list_node* next;

  };

  void reserve(list_node* phead)

  {

  list_node* p = phead->next;

  if(p == NULL || p->next == NULL) return; //只有头节点或一个节点

  list_node* p1=p->next;

  p->next=NULL;

  while(p1!=NULL)

  {

  p = p1->next;

  p1->next = phead->next;

  phead->next = p1;

  p1 = p;

  }

  }

  测试程序:

  list lt;

  lt.phead = new list_node(0,0);

  lt.phead->next = new list_node(1,0);

  lt.phead->next->next = new list_node(2,0);

  lt.phead->next->next->next = new list_node(3,0);

  lt.reserve();

  list_node * p = lt.phead;

  while(p)

  {

  cout<data<        p = p->next;

  }

  编辑特别推荐:

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

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答