编写代码,以给定的值x基准将链表分割成两部分,所有小于X的结点排在大于或等于X的结点之前。
class Partition
{
public ListNode* partition(ListNode* pHead, int x)
{
// write code here
if(NULL == pHead)
return NULL;
ListNode lessList(1);
ListNode greaterList(1);
ListNode* pTail1 = &lessList;
ListNode* pTail2 = &greaterList;
ListNode* pCur = pHead;//分割链表,从头部开始走
while(pCur)
{
if(pCur->val < x)
{
pTail1->next = pCur;
pTail1 = pTail1->next;
}
els