LeetCode Partition List
来源:互联网 发布:淘宝客户端for mac 编辑:程序博客网 时间:2024/06/04 18:03
题目
Given a linked list and a value x, partition it such that all nodes less thanx 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.
For example,
Given 1->4->3->2->5->2
and x = 3,
return 1->2->2->4->3->5
.
在链表中实现partition
代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *partition(ListNode *head, int x) {ListNode *pos=head,*last_pos=NULL,*end=head,*last_end=NULL,*last_head=head;//当前处理位置,之前的位置;当前小于值序列的超尾,之前的位置;保留之前的头head=NULL;while(pos!=NULL){if(pos->val<x)//元素小于划分值{if(pos==end)//之前元素都小于划分值{if(last_pos==NULL)//没有确定头的位置head=pos;last_pos=pos;pos=pos->next;last_end=end;end=end->next;}else if(head==NULL)//之前有大于划分值的元素{head=pos;last_pos->next=pos->next;pos->next=end;last_end=pos;pos=last_pos->next;}else//普通情况,将该元素移至小于划分值的序列的微部{last_end->next=pos;last_pos->next=pos->next;pos->next=end;last_end=pos;pos=last_pos->next;}}else//元素大于等于划分值{last_pos=pos;pos=pos->next;}}if(head==NULL)//所有元素都大于划分值return last_head;return head; }};
0 0
- LeetCode: Partition List
- LeetCode Partition List
- LeetCode: Partition List
- [Leetcode] Partition List **
- [Leetcode] Partition List
- [LeetCode] Partition List
- leetcode 81: Partition List
- [Leetcode] Partition List
- leetcode 118: Partition List
- [LeetCode]Partition List
- [leetcode]Partition List
- LeetCode-Partition List
- [leetcode] Partition List
- LeetCode - Partition List
- [LeetCode] Partition List
- LeetCode 86: Partition List
- LeetCode:Partition List
- 【leetcode】Partition List
- 强大的xUtils工具类整理
- javascript 链式栈
- poj 3237 Tree(树链剖分)
- Android添加APP权限
- 【KJLibrary框架学习】基于BaseActivity的MyBaseActivity代码和用法
- LeetCode Partition List
- Android学习笔记【示例代码】
- 索引
- 进程和线程的区别
- 没人比程序员更讨厌软件
- Find Minimum in Rotated Sorted Array
- phpcms v9二次开发及使用中各种问题解决方案(一)
- RTP协议分析
- 硅料回收重要网站