Leetcode刷题笔记题解(C++):328. 奇偶链表

思路:遍历链表生成奇链表和偶链表,然后拼接两个链表生成新的链表。

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* oddEvenList(ListNode* head) {
        ListNode* pre = new ListNode(-1);
        ListNode* pre_temp = pre;
        ListNode* end = new ListNode(-1);
        ListNode* end_temp = end;
        int i = 1;//用来判断奇偶
        while(head){
            if(i%2==1){
                pre_temp->next = head;
                pre_temp = pre_temp->next;
            }else{
                end_temp->next = head;
                end_temp = end_temp->next;
            }
            i++;
            head = head->next;
        }
        end_temp->next = nullptr;
        pre_temp->next = end->next;
        return pre->next;
    }
};
相关推荐
埃伊蟹黄面3 分钟前
字符串算法精要与例题汇编
c++·算法·leetcode·字符串
Roye_ack7 分钟前
【leetcode hot 100】刷题记录与总结笔记(4/100)
笔记·算法·leetcode
..过云雨13 分钟前
15-2.【Linux系统编程】进程信号 - 信号保存(信号处理流程的三种状态:未决、阻塞、递达,信号保存由未决表完成、sigset_t信号集类型及相关函数)
linux·c++·后端·信号处理
黑牛先生16 分钟前
【GDB】调试Jsoncpp源码
开发语言·c++·算法
ibuki_fuko17 分钟前
QT/C++ 程序启动时检查程序是否已经启动
开发语言·c++·qt
深蓝海拓21 分钟前
PySide6从0开始学习的笔记(五) 信号与槽
笔记·qt·学习·pyqt
XiaoHu020731 分钟前
C++特殊类设计与类型转换
开发语言·c++
报错小能手41 分钟前
STL——set
开发语言·c++
不夜牛仔42 分钟前
算法笔记19 - 图和通用结构 | 图的两种遍历 | 三种拓扑排序 | 两种最小生成树算法Kruskal, Prim | 最短路径算法Dijkstra
笔记·算法
小龙报44 分钟前
【算法通关指南:基础算法篇】高精度专题:一篇破除超数运算问题
c语言·数据结构·c++·算法·链表·贪心算法·visual studio