leetcode 328. 奇偶链表(双指针)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 328. 奇偶链表(双指针)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這里的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。
請嘗試使用原地算法完成。你的算法的空間復雜度應為 O(1),時間復雜度應為 O(nodes),nodes 為節點總數。
示例 1:
輸入: 1->2->3->4->5->NULL
輸出: 1->3->5->2->4->NULL
示例 2:
輸入: 2->1->3->5->6->4->7->NULL
輸出: 2->3->6->7->1->5->4->NULL
代碼
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/ class Solution {public ListNode oddEvenList(ListNode head) {if(head==null) return head;ListNode sec=head.next;ListNode odd=head;//奇數位置指針ListNode even=head.next;//偶數位置指針while (odd!=null&&even!=null){odd.next=even.next;//指向下一個奇數位置if(even.next==null) break;even.next=even.next.next;//指向下一個偶數位置odd=odd.next;//移動even=even.next;}odd.next=sec;return head;} }總結
以上是生活随笔為你收集整理的leetcode 328. 奇偶链表(双指针)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到巨大的蛇预示着什么
- 下一篇: leetcode 402. 移掉K位数字