#include <iostream>
#include <string>
#include <map>
using namespace std;
struct Node
{
int data;
Node* next;
};
Node* partition(Node* head, int x)
{
Node* beforeS = NULL;
Node* beforeE = NULL;
Node* afterS = NULL;
Node* afterE = NULL;
while (head)
{
Node* next = head->next;
head->next = NULL;//待插入结点的next值为空,以免指向同一个位置
if (head->data < x)
{
if (beforeS == NULL)
{
beforeS = head;
beforeE = head;
}
else
{
beforeE->next = head;
beforeE = head;
}
}
else
{
if (afterS == NULL)
{
afterS = head;
afterE = head;
}
else
{
afterE->next = head;
afterE = head;
}
}
head = next;
}
if (beforeS == NULL)
{
return afterS;
}
beforeE->next = afterS;
return beforeS;
}
int main()
{
//getchar();
return 0;
}
#include <string>
#include <map>
using namespace std;
struct Node
{
int data;
Node* next;
};
Node* partition(Node* head, int x)
{
Node* beforeS = NULL;
Node* beforeE = NULL;
Node* afterS = NULL;
Node* afterE = NULL;
while (head)
{
Node* next = head->next;
head->next = NULL;//待插入结点的next值为空,以免指向同一个位置
if (head->data < x)
{
if (beforeS == NULL)
{
beforeS = head;
beforeE = head;
}
else
{
beforeE->next = head;
beforeE = head;
}
}
else
{
if (afterS == NULL)
{
afterS = head;
afterE = head;
}
else
{
afterE->next = head;
afterE = head;
}
}
head = next;
}
if (beforeS == NULL)
{
return afterS;
}
beforeE->next = afterS;
return beforeS;
}
int main()
{
//getchar();
return 0;
}