(c++)将单向链表按某值划分成左边小、中间相等、右边大的形式
2019-03-02 15:21
211 查看
ListNode* listPartition1(ListNode* head, int num){
if(head=nullptr)
return nullptr;
if(head->next=nullptr)
return head;
ListNode *sh=NULL;//小于区域的head
ListNode *st=NULL;//小于区域的end
ListNode *eh=NULL;
ListNode *et=NULL;
ListNode *bh=NULL;
ListNode *bt=NULL;
ListNode *next;
while(head!=nullptr){
next=head->next;
head->next=nullptr;
if(head->val<num){
if(sh=nullptr)
{
sh=head;
st=head;
}
else
{st->next=head;
st=head;}}
if(head->val>num){
if(bh=nullptr)
{bh=head;
bt=head;
}
else{
bt->next=head;
bt=head;}}
else
{if(eh==nullptr)
{eh=head;
et=head;
}
else{
et->next=head;
et=head;}}
head=next;}
if(sh!=nullptr){
st->next=eh;
et=et==nullptr?st:et;}
if(eh!=nullptr){
et->next=bh;
}
return sh!=nullptr?sh:eh!==nullptr?eh:bh;}
相关文章推荐
- 将单向链表按某个值划分成左边小、中间相等、右边大的形式 Python 版
- 将单向链表按某值划分成左边小、中间相等、右边大的形式
- [链表] - 将单向链表按某值划分成左边小、中间相等、右边大的形式
- Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(进阶问题)
- 将单向链表按某值划分成左边小、 中间相等、 右边大的形式~迎娶是挺
- Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(基础问题)
- 将单向链表按某值划分成左边小、中间相等、右边大的形式(O(1)空间复杂度,稳定划分)
- 算法总结之 将单向链表按某值划分成左边小、中间相等、右边大的形式
- 将单向链表按某值划分成左边小、中间相等、右边大的形式
- 链表问题---将单向链表按某值划分成左边小,中间相等,右边大的形式
- 将单向链表按某值划分成左边小、中间相等、右边大的形式
- 将单向链表按某值划分成左边小、中间相等、右边大的形式牛客网初级班练习12
- 将单向链表按某值划分成左边小、 中间相等、 右边大的形式-python3
- 将单向链表按某值划分成左边小,中间相等,右边大
- C++将链表划分为左边小,中间等,右边大于pivotKey的形式
- C++链表划分左边小中间等右边大 时间复杂度O(n) 空间复杂度O(1)
- 把单链表按某值划分成左边小,中间相等,右边大的形式,时间O(n),空间O(1)
- [JS]链表划分给定中间值,小的在左边,大的在右边并保持原排序
- [JS]链表划分给定中间值,小的在左边,大的在右边并保持原排序
- 面试题12 在一个单向链表中 指定一个元素 x 然后将所有小于 x 的元素都放到 x 左边 剩下的元素放到 x 的右边