题解 | #旋转链表#

旋转链表

http://www.nowcoder.com/practice/1ad00d19a5fa4b8dae65610af8bdb0ed

struct ListNode* rotateLinkedList(struct ListNode* head, int k ) 
{
    // write code here
    int count=0;
    struct ListNode*c=head;
    while(c)   // 统计链表长度
    {
        count++;
        c=c->next;
    }
    if(count==0) // 特判长度为零
    {
        return head;
    }
    k%=count;
    if(k==0)    // 特判无需翻转
    {
        return head;
    }
    int i=0;
    struct ListNode*cur=head;
    for(i=0;i<count-k-1;i++)  // 找到反转后的链表头
    {
        cur=cur->next;
    }
    struct ListNode*newhead=cur->next; // 标记新链表头
    cur->next=NULL;
    cur=newhead;
    while(cur->next!=NULL)   // 原链表尾与头链接
    {
        cur=cur->next;
    }
    cur->next=head;
    return newhead;
}
全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务