描述
本题是力扣的86. 分隔链表
考点
-
链表的裁剪
题解
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode *dummySmall = new ListNode(-1), *curSmall = dummySmall;
ListNode *dummyLarge = new ListNode(-1), *curLarge = dummyLarge;
while (head != nullptr) {
if (head->val < x) {
curSmall->next = head;
curSmall = curSmall->next;
} else {
curLarge->next = head;
curLarge = curLarge->next;
}
head = head->next;
}
curSmall->next = dummyLarge->next;
curLarge->next = nullptr;
return dummySmall->next;
}
};
思路
一个小链表按序存储值小于x的节点,一个大链表按序存储剩余节点,再将大链表接在小链表尾部即可
更多
恭喜你完成本题!
你可以选择继续下一题,或移步至仓库开始更多类型的挑战:https://fi3wey.github.io/
仓库内包含了更多经典案例的逻辑剖析与实现细节,助你在算法的学习之旅上一往无前!
看官若还满意,还请Star一下哟~
关注公众号峰狂算法
,获取最新的刷题指导呀~