C语言数据结构旋转链表的实现
C语言数据结构旋转链表的实现
实例:
给出链表1->2->3->4->5->null和k=2
返回4->5->1->2->3->null
分析:
感觉很直观,直接把分割点找出来就行,记得k可能大于len,要取模
代码:
/**
*Definitionforsingly-linkedlist.
*structListNode{
*intval;
*ListNode*next;
*ListNode(intx):val(x),next(NULL){}
*};
*/
classSolution{
public:
/**
*@paramhead:thelist
*@paramk:rotatetotherightkplaces
*@return:thelistafterrotation
*/
ListNode*rotateRight(ListNode*head,intk){
//writeyourcodehere
if(head==NULL)
returnhead;
intlen=0;
ListNode*temp=head;
while(temp)
{
len++;
temp=temp->next;
}
k%=len;
if(k==0)
returnhead;
k=len-k;
temp=head;
while(k>1)
{
temp=temp->next;
k--;
}
ListNode*newStart=temp->next;
temp->next=NULL;
temp=newStart;
while(temp->next)
temp=temp->next;
temp->next=head;
returnnewStart;
}
};
以上就是C语言数据结构旋转链表的实现,如有疑问请留言或者到本站社区交流讨论,本站关于数据结构的文章还有很多,希望大家搜索查阅,大家共同进步!
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短