本文主要是介绍Leetcode刷题笔记题解(C++):328. 奇偶链表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:遍历链表生成奇链表和偶链表,然后拼接两个链表生成新的链表。
/*** 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;}
};
这篇关于Leetcode刷题笔记题解(C++):328. 奇偶链表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!