美文网首页
143 Reorder List

143 Reorder List

作者: Shiyi001 | 来源:发表于2016-10-16 10:55 被阅读0次

Given a singly linked list L: <i>L</i>: <i>L</i>0→<i>L</i>1→…→<i>L</i><i>n</i>-1→<i>L</i>n,
reorder it to: <i>L</i>0→<i>L</i><i>n</i>→<i>L</i>1→<i>L</i><i>n</i>-1→<i>L</i>2→<i>L</i><i>n</i>-2→…

You must do this in-place without altering the nodes' values.

For example,
Given <code>{1,2,3,4}</code>, reorder it to <code>{1,4,2,3}</code>.


解题思路

这本来是一道链表转换为另一个链表的题目。但是转换方式过于奇葩,实在不适合链表来做(链表更适合于做插入删除类的操做,或者是相邻元素之间的操作),于是果断决定先用个<code>vector</code>存起来,再进行转换。


代码

class Solution {
public:
    void reorderList(ListNode* head) {
        vector<int> res;
        ListNode* s = head;
        while (s != NULL){
            res.push_back(s->val); s = s->next;
        }
        int l = 0, r = res.size()-1;
        ListNode* t = head;
        while (l <= r){
            t->val = res[l++];
            t = t->next;
            if (t == NULL) break;
            t->val = res[r--];
            t = t->next;
            if (t == NULL) break;
        }
    }
};

相关文章

  • leetcode链表之重排链表

    143、重排链表[https://leetcode-cn.com/problems/reorder-list/] ...

  • 143. Reorder List

    题目143. Reorder List Given a singly linked list L: L0→L1→…...

  • 143 Reorder List

    Given a singly linked list L: L : L 0→ L 1→…→ L n -1→...

  • 143. Reorder List

    实在是太困了 看不下去这一题的指针,明早上看

  • 143. Reorder List

    题目分析 Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorde...

  • 143. Reorder List

    题目 Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder ...

  • 143. Reorder List

    分为以下几个步骤,1使用快慢指针找到中间节点,2翻转后半部分,3逐个插入节点。

  • 143. Reorder List

    Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it ...

  • 143. Reorder List

    题目描述:给链表如L: L0→L1→…→Ln-1→Ln,将其重新排序为L0→Ln→L1→Ln-1→L2→Ln-2→...

  • 【Leetcode】143—Reorder List

    一、题目描述 给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-...

网友评论

      本文标题:143 Reorder List

      本文链接:https://www.haomeiwen.com/subject/deioyttx.html