LeetCode - Reorder List
2014-02-13 17:47
267 查看
Reorder List
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
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}.
#include <iostream> #include <vector> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: void reorderList(ListNode *head) { if (!head) return; int length = 0; vector<ListNode *> vecList; ListNode *trace = head; while (trace) { vecList.push_back(trace); trace = trace->next; length++; } int start = 0; int tail = length - 1; while (start < tail) { vecList[start]->next = vecList[tail]; vecList[tail]->next = vecList[start+1]; start++; tail--; } vecList[start]->next = NULL; } }; int main() { ListNode *head = new ListNode(1); ListNode *trace = head; trace->next = new ListNode(2); trace = trace->next; trace->next = new ListNode(3); trace = trace->next; trace->next = new ListNode(4); trace = head; while (trace) { cout << trace->val << endl; trace = trace->next; } Solution *so = new Solution(); so->reorderList(head); trace = head; while (trace) { cout << trace->val << endl; trace = trace->next; } return 0; }
相关文章推荐
- Reorder List 链表首尾交叉排列@LeetCode
- 143.leetcode Reorder List (medium)[链表调整]
- LeetCode Reorder List
- [Leetcode][python]Reorder List
- leetcode143 Reorder List
- LeetCode - Reorder List
- [LeetCode] Reorder List
- 【LeetCode】Reorder List 解题报告
- 链表 leetcode 143 Reorder List
- [LeetCode 143] Reorder List Solution
- leetcode刷题6:对单链表重新排序--reorder list
- [LeetCode] Reorder List
- [LeetCode] 重排链表 reorder linked list
- Leetcode: Reorder List
- Leetcode--Reorder List
- leetcode -- Reorder List
- [LeetCode]Reorder List
- LeetCode OJ Reorder List
- leetcode:Reorder List (修改链表排列不改变值) 【面试算法题】
- leetcode reorder-list(java实现)