LeetCode--Reorder List
2015-01-15 10:46
369 查看
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
还可以通过链表直接改进空间复杂度降为常数
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}.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: void reorderList(ListNode *head) { if(head== NULL || head->next==NULL) return; ListNode* temp = head; vector<ListNode*> res; while(temp!=NULL) { res.push_back(temp); temp = temp->next; } int n = res.size()-1; int low = 0; int high = n; while(low<high) { res[low]->next = res[high]; res[high]->next = res[low+1]; low++; high--; } res[low]->next = NULL; head = res[0]; } };
还可以通过链表直接改进空间复杂度降为常数
相关文章推荐
- leetcode - Reorder List
- [LeetCode] Reorder List
- [LeetCode] Reorder List
- LeetCode题解–143. Reorder List
- Leetcode: Reorder List
- leetcode -- Reorder List
- LeetCode Reorder List
- 【leetcode】【单链表】【143】Reorder List
- leetcode:Reorder List (修改链表排列不改变值) 【面试算法题】
- [LeetCode] Reorder List
- LeetCode Reorder List
- leetcode 日经贴,Cpp code -Reorder List
- Reorder List 链表首尾交叉排列@LeetCode
- leetcode. Reorder List
- LeetCode(143) Reorder List
- leetcode || 143、Reorder List
- leetcode reorder-list(java实现)
- 【LeetCode】Reorder List
- leetcode--Reorder List
- Reorder List - Leetcode