电商网站设计培训,深圳网站备,什么做网站开发,wordpress仿静态目录 题目#xff1a;
示例#xff1a;
分析#xff1a;
代码#xff1a; 题目#xff1a; 示例#xff1a; 分析#xff1a;
题目给我们一个链表#xff0c;让我们把奇索引和偶索引的节点区分开来 #xff0c;参考示例给出的图我们应该就能很清晰地知道题目是什么…目录 题目
示例
分析
代码 题目 示例 分析
题目给我们一个链表让我们把奇索引和偶索引的节点区分开来 参考示例给出的图我们应该就能很清晰地知道题目是什么意思了。
每次做链表题我的第一反应都是先把链表的每个节点都先存起来再做处理。
不过这道题有给出限制O1的额外空间和On的时间复杂度就是我们不能拿额外的容器来存并且需要只遍历链表一次就得出答案。
我们可以额外建立两条链表然后遍历链表拿一个索引值来记录节点是奇还是偶如果是奇数那么我们就把该节点转移到奇数的那条链表里反之就转移到偶数的那条链表里最后把原始链表 瓜分完之后再把奇偶链表连接起来就好啦。 代码
class Solution {
public:ListNode* oddEvenList(ListNode* head) {if(headnullptr || head-nextnullptr) return head; //长度小于等于1的特殊情况直接返回ListNode* oddhead;ListNode* toddhead;ListNode* evenhead-next;ListNode* tevenhead-next;int index1;headteven-next;while(head!nullptr){if(index%20){ //如果是偶节点teven-nexthead; //让偶接收teventeven-next;}else{ //反之是奇节点todd-nexthead; //让奇接收toddtodd-next;}index;headhead-next;}teven-nextnullptr; //偶后面是空指针todd-nexteven; //奇后面是偶的开头return odd;}
};