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;
        }
    };
  • 相关阅读:
    4. RDMA操作类型
    3. RDMA基本元素
    2. 比较基于Socket与RDMA的通信
    1. RDMA概述
    win10 如何开启hyper-v虚拟机
    将Oracle 当前日期加一天、一小时、一分钟
    github搜索案例(axios、pubsub、fetch)
    Tolist案例(父子传参实现增删改)
    5.key的使用
    4.React生命周期
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10704058.html
Copyright © 2011-2022 走看看