题解

按照左右半区的方式重新组合单链表

http://www.nowcoder.com/questionTerminal/a7a348bdb4634e228cf7704c8a2a8bda

list_node * relocate(list_node * head)
{
    //////在下面完成代码
    if(head == nullptr || head->next == nullptr) return head;
    list_node* slow = head;
    list_node* fast = head;
    while(fast->next != nullptr && fast->next->next != nullptr) {
        slow = slow->next;
        fast = fast->next->next;
    }
    if(fast->next == nullptr) ;
    else if(fast->next->next == nullptr) slow = slow->next;
    fast = head;
    while(fast->next != slow) fast = fast->next;
    fast->next = nullptr;
    fast = head;
    while(fast != nullptr) {
        list_node* tmp = slow;
        slow = slow->next;
        tmp->next = fast->next;
        fast->next = tmp;
        fast = tmp->next;
        if(fast == nullptr && slow != nullptr)
            tmp->next = slow;
    }
    return head;
}
全部评论

相关推荐

程序员牛肉:这一眼假啊,基本上都是骗人的,不然就涉及到职位贪腐了,就像之前华为的OD事件,看你运气好不好了
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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