下载此文档

美团面试算法题.doc


文档分类:管理/人力资源 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
链表翻转。给出一个链表和一个数k,比方链表1→2→3→4→5→6,k=2,则翻转后2→1→
4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现
structNode
链表翻转。给出一个链表和一个数k,比方链表1→2→3→4→5→6,k=2,则翻转后2→1→
4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现
structNode{
intdata;
Node*next;
};
voidreverse(Node*head,Node*end){
if(head==NULL||end==NULL)return;
Node*pre=NULL,*cur=head,*stop=end->next;
while(cur!=stop){
Node*nxt=cur->next;
cur->next=pre;
pre=cur;
cur=nxt;
}
}
15.
Node*reverseAll(Node*head,intk){
if(head==NULL||k<=0)returnNULL;
Node*cur=head;
for(inti=0;i<k-1;i++){
cur=cur->next;
if(cur==NULL)
break;
}
if(cur==NULL)returnhead;
Node*begin=cur->next,*end=begin;
Node*pre=head;
reverse(head,cur);
28.
while(begin!=NULL){
for(inti=0;i<k-1;i++){
end=end->next;
if(end==NULL)
break;
}
if(end==NULL){
pre->next=begin;
break;
}
else{
Node*nextbegin=end->next;
reverse(begin,end);
pre->next=end;
pre=begin;
begin=end=nextbegin;
}
}
returncur;
}
49.
intmain( ){
inta[]={1,2,3,4,5,6,7,8,9,10,11,12};
Node*nd[12];
for(inti=0;i<12;i++){
nd[i]=newNode;
nd[i]->next=NULL;
nd[i]->data=a[i];
}
for(inti=0;i<11;i++){
nd[i]->next=nd[i+1];
}
Node*tmp=reverseAll(nd[0],4);
for(;tm

美团面试算法题 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人秋天学习屋
  • 文件大小113 KB
  • 时间2022-06-06
最近更新