zoukankan      html  css  js  c++  java
  • (链表) leetcode 328. Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.

    You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity.

    Example 1:

    Input: 1->2->3->4->5->NULL
    Output: 1->3->5->2->4->NULL
    

    Example 2:

    Input: 2->1->3->5->6->4->7->NULL
    Output: 2->3->6->7->1->5->4->NULL
    

    Note:

    • The relative order inside both the even and odd groups should remain as it was in the input.
    • The first node is considered odd, the second node even and so on ...

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    这个题是需要建立两个辅助结点,分别指向奇数位置和偶数位置。最好画图来辅助思考。

    C++代码:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* oddEvenList(ListNode* head) {
            ListNode *odd,*even;
            if(!head || !head->next) return head;
            odd = head;
            even = head->next;
            while(even && even->next){
                ListNode *cur = odd->next;   //十分有必要建立这个辅助结点。
                odd->next = even->next;
                even->next = even->next->next;
                odd->next->next = cur;
                even = even->next;
                odd = odd->next;
            }
            return head;
        }
    };
  • 相关阅读:
    drf中的请求模块和渲染模块
    drf基础
    vue中的路由传参及跨组件传参
    vue项目环境搭建与组件介绍
    vue基础指令了解补充及组件介绍
    整理的几个防止刷新后退重复提交数据的方法
    程序员心灵之塔
    怎么样才是好的程序员
    using在namespace里面还是外面有区别吗
    高级.net工程师必备
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10704058.html
Copyright © 2011-2022 走看看