LeetCode筆記:328. Odd Even Linked List

問題

Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.
You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity.
Example:
Given 1->2->3->4->5->NULL,
return 1->3->5->2->4->NULL.
Note:
The relative order inside both the even and odd groups should remain as it was in the input.
The first node is considered odd, the second node even and so on ...

大意:

給出一個(gè)簡單鏈表嗅定,集合所有奇數(shù)位置的節(jié)點(diǎn)蜜徽,后面跟著所有偶數(shù)位置的節(jié)點(diǎn)。請注意這里我們說的是節(jié)點(diǎn)的位置而不是節(jié)點(diǎn)值。
你應(yīng)該嘗試在固定空間做。程序應(yīng)該在O(1)的空間復(fù)雜度和O(nodes)的時(shí)間復(fù)雜度下運(yùn)行洋措。
例子:
給出 1->2->3->4->5->NULL,
返回 1->3->5->2->4->NULL救恨。
注意:
偶數(shù)和奇數(shù)組中節(jié)點(diǎn)的相對位置要保持不變缀匕。
第一個(gè)節(jié)點(diǎn)被認(rèn)為是奇數(shù)纳决,第二個(gè)是偶數(shù),如此往復(fù)乡小。

思路:

題目的要求根據(jù)例子就可以明白阔加,奇數(shù)和偶數(shù)位置的節(jié)點(diǎn)分成兩段來排列,關(guān)鍵是要在O(1)的空間復(fù)雜度下做满钟,否則直接用一個(gè)新鏈表就可以簡單完成胜榔。

O(1)的空間下也好做,我們用兩個(gè)頭結(jié)點(diǎn)湃番,一個(gè)為奇數(shù)的頭結(jié)點(diǎn)夭织,一個(gè)為偶數(shù)的頭結(jié)點(diǎn),然后遍歷鏈表吠撮,奇數(shù)位置的節(jié)點(diǎn)就記錄在奇數(shù)頭結(jié)點(diǎn)后面尊惰,偶數(shù)位置的節(jié)點(diǎn)就記錄在偶數(shù)頭結(jié)點(diǎn)后面,兩者是交替記錄的,因?yàn)槲覀冇玫倪€是原來的節(jié)點(diǎn)弄屡,只是next指針指向的節(jié)點(diǎn)變了题禀,所以并沒有增加空間。遍歷完后我們得到了奇偶兩條鏈表琢岩,將偶鏈表的頭結(jié)點(diǎn)接到奇鏈表的最尾端就可以了投剥。

要注意一些節(jié)點(diǎn)為Null的處理。

代碼(Java):

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode oddEvenList(ListNode head) {
        if (head == null || head.next == null) return head;
        
        ListNode even = head.next;
        ListNode evenNext = even;
        ListNode oddNext = head;
        while (evenNext != null) {
            oddNext.next = evenNext.next;
            
            if (oddNext.next != null) {
                oddNext = oddNext.next;
                evenNext.next = oddNext.next;
                evenNext = evenNext.next;
            } else {
                break;
            }
        }
        oddNext.next = even;
        return head;
    }
}

合集:https://github.com/Cloudox/LeetCode-Record


查看作者首頁

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末担孔,一起剝皮案震驚了整個(gè)濱河市江锨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌糕篇,老刑警劉巖啄育,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拌消,居然都是意外死亡挑豌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門墩崩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氓英,“玉大人,你說我怎么就攤上這事鹦筹÷敛” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵铐拐,是天一觀的道長徘键。 經(jīng)常有香客問我,道長遍蟋,這世上最難降的妖魔是什么吹害? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮虚青,結(jié)果婚禮上它呀,老公的妹妹穿的比我還像新娘。我一直安慰自己挟憔,他們只是感情好钟些,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绊谭,像睡著了一般政恍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上达传,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天篙耗,我揣著相機(jī)與錄音迫筑,去河邊找鬼。 笑死宗弯,一個(gè)胖子當(dāng)著我的面吹牛脯燃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒙保,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼辕棚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了邓厕?” 一聲冷哼從身側(cè)響起逝嚎,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎详恼,沒想到半個(gè)月后补君,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昧互,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年挽铁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敞掘。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叽掘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玖雁,到底是詐尸還是另有隱情够掠,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布茄菊,位于F島的核電站,受9級特大地震影響赊堪,放射性物質(zhì)發(fā)生泄漏面殖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一哭廉、第九天 我趴在偏房一處隱蔽的房頂上張望脊僚。 院中可真熱鬧,春花似錦遵绰、人聲如沸辽幌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乌企。三九已至,卻和暖如春成玫,著一層夾襖步出監(jiān)牢的瞬間加酵,已是汗流浹背拳喻。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猪腕,地道東北人冗澈。 一個(gè)月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像陋葡,于是被迫代替她去往敵國和親亚亲。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容