leetcode之reorder-list

来源:互联网 发布:jsp电子商务网站源码 编辑:程序博客网 时间:2024/04/29 06:04

题目描述

Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…
You must do this in-place without altering the nodes’ values.
For example,
Given{1,2,3,4}, reorder it to{1,4,2,3}.

class Solution {public:    void reorderList(ListNode *head) {       vector<int> v;       ListNode *p = head;        while(p!= NULL) {  //把链表的元素用向量存储            v.push_back(p ->val);            p = p ->next;        }        int i =0;        int j = (int)v.size() -1;        p = head;        int index = 0;        while(i <= j) {              if(index % 2 ==0)                p ->val = v[i++];             else                p ->val = v[j--];            index ++;            p = p ->next;        }    }};
0 0