题解 | #链表分割#
链表分割
https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70
/*struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};*/
class Partition {
public:
ListNode* partition(ListNode* pHead, int x) {
if (pHead == nullptr)
{
return nullptr;
}
ListNode* pTempGreater = new ListNode(0);
ListNode* pTempLess = new ListNode(0);
ListNode* pTempGreaterCopy = pTempGreater;
ListNode* pTempLessCopy = pTempLess;
for (ListNode* n = pHead; n != nullptr; n = n->next)
{
if (n->val >= x)//大于val的部分 放在后面
{
pTempGreater ->next= new ListNode(n->val);//构造一个节点 然后粘贴到链上去,仅仅复制值
pTempGreater = pTempGreater->next;
}
else
{
pTempLess->next = new ListNode(n->val);
pTempLess = pTempLess->next;
}
}
pTempLess->next = pTempGreaterCopy->next;
return pTempLessCopy->next;
}
};
三奇智元机器人科技有限公司公司福利 74人发布
查看1道真题和解析