题解 | #链表的奇偶重排#

链表的奇偶重排

http://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3

模拟

借助两个vector模拟即可

C++代码:

class Solution {
public:
    ListNode* oddEvenList(ListNode* head) {
        if (!head) {return NULL;}
        if (head->next == NULL) {
            return head;
        }
        vector<ListNode *> a, b;
        for (int i = 0; head; i++, head = head->next) {
            if (i & 1) {
                b.push_back(head);
            } else {
                a.push_back(head);
            }
        }
        for (int i = 0; i < a.size() - 1; i++) {
            a[i]->next = a[i + 1];
        }
        for (int i = 0; i < b.size() - 1; i++) {
            b[i]->next = b[i + 1];
        }
        a[a.size() - 1]->next = b[0];
        b[b.size() - 1]->next = NULL;
        return a[0];
    }
};
全部评论

相关推荐

浪子陪都:简历最优秀的地方放到了后面,国奖,校级奖学金这些是最亮眼的。说明你跟同级别的学生不一样。 建议台灯这个,PCB布局布线这个词汇不专业,业内是PCB Layout,第二,单片机的板子一般不用考虑SI,PI 都是低速信号,只要遵循3W原则就好了。 单片机的项目太low了,技能这块,你要看一下BOSS直聘的招聘要求,按照别人的要求写,一些关键词可以增加你简历被检索到的概率。 主修课程不用写,这个没有人去关注的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务