描述
本题是力扣的328. 奇偶链表
考点
-
链表的合并
题解
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
int cnt = 1;
ListNode *dummyHeadA = new ListNode(-1), *curA = dummyHeadA, *dummyHeadB = new ListNode(-1), *curB = dummyHeadB;
while (head != nullptr) {
if (cnt++ % 2) {
curA->next = head;
curA = curA->next;
} else {
curB->next = head;
curB = curB->next;
}
head = head->next;
}
curA->next = dummyHeadB->next;
curB->next = nullptr;
return dummyHeadA->next;
}
};
思路
新建两个伪节点,各用来构成奇链表与偶链表
遍历链表时,奇数节点插入至奇链表,偶数节点插入至偶链表;最终将偶链表接在奇链表末尾即可
更多
恭喜你完成本题!
你可以选择继续下一题,或移步至仓库开始更多类型的挑战:https://fi3wey.github.io/
仓库内包含了更多经典案例的逻辑剖析与实现细节,助你在算法的学习之旅上一往无前!
看官若还满意,还请Star一下哟~
关注公众号峰狂算法
,获取最新的刷题指导呀~