328. Odd Even Linked List
程序员文章站
2022-07-14 08:45:11
...
这道题是说给出一个单链表,要求在原地把这个单链表改成,奇数节点连起来放前面,后面连偶数节点。此处的奇偶不是只节点的值,而是只第几个节点。
思路比较简单,首先把这个单链表分割成两个链表,一个是奇数节点连起来,另一个是偶数节点连起来。然后把第一个链表的末尾和第二个链表的开头连起来就是最后的结果。
所以设两个指针交替着往后遍历链表就可以。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if(head == NULL) return head;
ListNode *odd = head, *even = head->next, *evenhead = head->next;
while(odd->next && even->next){
odd->next = even->next;
odd = even->next;
even->next = odd->next;
even = odd->next;
}
odd->next = evenhead;
return head;
}
};
推荐阅读
-
【LeetCode OJ 328】Odd Even Linked List
-
leetcode 328. Odd Even Linked List
-
leetcode 328. Odd Even Linked List
-
328. Odd Even Linked List
-
328. Odd Even Linked List。
-
328. Odd Even Linked List
-
[LC] 328. Odd Even Linked List
-
【Leetcode】328.(Medium)Odd Even Linked List
-
【List-medium】328. Odd Even Linked List 偶数位置放在后面,奇数位置元素放到前面
-
328. Odd Even Linked List