19.2.23 [LeetCode 86] Partition List
Posted TobicYAL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19.2.23 [LeetCode 86] Partition List相关的知识,希望对你有一定的参考价值。
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
Example:
Input: head = 1->4->3->2->5->2, x = 3
Output: 1->2->2->4->3->5
题意
把链表按前面的全是小于x的,后面的全是大于等于x的顺序重组
题解
1 class Solution { 2 public: 3 ListNode* partition(ListNode* head, int x) { 4 ListNode*less = new ListNode(0),*lessh=less, *greater = new ListNode(0),*greaterh=greater; 5 while (head) { 6 ListNode*after = head->next; 7 if (head->val < x) { 8 less->next = head; 9 less = less->next; 10 less->next = NULL; 11 } 12 else { 13 greater->next = head; 14 greater = greater->next; 15 greater->next = NULL; 16 } 17 head = after; 18 } 19 less->next = greaterh->next; 20 return lessh->next; 21 } 22 };
我就总爱各种地方有漏洞……面的时候也差不多……惨
以上是关于19.2.23 [LeetCode 86] Partition List的主要内容,如果未能解决你的问题,请参考以下文章
19.2.23 [LeetCode 85] Maximal Rectangle
LeetCode 86. 分隔链表(Partition List)