答案家

 找回密码
 立即注册
查看: 638|回复: 0

数据结构:请你设计一个将线性链表进行逆置的算法。

[复制链接]

1万

主题

1万

帖子

81万

积分

校长

Rank: 9Rank: 9Rank: 9

积分
817252
发表于 2016-12-7 21:47:25 | 显示全部楼层 |阅读模式
解:
单链表逆置算法一  struct node  { int num;
  struct node *next;  }
struct node* reverse(struct node *head) //head 链表头结点
{ struct node *p,*temp1,*temp2;  
  if(head==NULL||head->next==NULL ) return head;      
p=head->next;head->next=NULL;   while(p!=NULL) //p!=NULL或p   { temp1=head;    head=p;     temp2=p;   
p=p->next;
temp2->next=temp1; //或head->next=temp1;   }
  return head; //返回逆置后的链表的头结点  }  

单链表逆置算法二  
struct node* reverse(struct node *head)   //head 链表头结点 {  struct node *p,*temp1,*temp2;  
  if(head==NULL ||head->next==NULL) return head;   p=head->next;head->next=NULL;   while(p!=NULL)   //p!=NULL或p   { temp1=p->next;    p->next = head;           head = p;           p = temp1;
}
  return head; //返回逆置后的链表的头结点 }

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

CopyRight(c)2016 www.daanjia.com All Rights Reserved. 本站部份资源由网友发布上传提供,如果侵犯了您的版权,请来信告知,我们将在5个工作日内处理。
快速回复 返回顶部 返回列表