這篇“如何使用java實(shí)現(xiàn)奇偶鏈表”文章,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要參考一下,對(duì)于“如何使用java實(shí)現(xiàn)奇偶鏈表”,小編整理了以下知識(shí)點(diǎn),請(qǐng)大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進(jìn)入主題吧。
創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元?dú)J州做網(wǎng)站,已為上家服務(wù),為欽州各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
給定一個(gè)單鏈表,把所有的奇數(shù)節(jié)點(diǎn)和偶數(shù)節(jié)點(diǎn)分別排在一起。請(qǐng)注意,這里的奇數(shù)節(jié)點(diǎn)和偶數(shù)節(jié)點(diǎn)指的是節(jié)點(diǎn)編號(hào)的奇偶性,而不是節(jié)點(diǎn)的值的奇偶性。
請(qǐng)嘗試使用原地算法完成。你的算法的空間復(fù)雜度應(yīng)為 O(1),時(shí)間復(fù)雜度應(yīng)為 O(nodes),nodes 為節(jié)點(diǎn)總數(shù)。
示例 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
說明:
應(yīng)當(dāng)保持奇數(shù)節(jié)點(diǎn)和偶數(shù)節(jié)點(diǎn)的相對(duì)順序。
鏈表的第一個(gè)節(jié)點(diǎn)視為奇數(shù)節(jié)點(diǎn),第二個(gè)節(jié)點(diǎn)視為偶數(shù)節(jié)點(diǎn),以此類推。
答案:
1public ListNode oddEvenList(ListNode head) {
2 if (head != null) {
3 ListNode odd = head;//奇數(shù)節(jié)點(diǎn)
4 ListNode even = head.next;//偶數(shù)節(jié)點(diǎn)
5 ListNode evenHead = even;
6 while (even != null && even.next != null) {
7 odd.next = odd.next.next;
8 even.next = even.next.next;
9 odd = odd.next;
10 even = even.next;
11 }
12 odd.next = evenHead;
13 }
14 return head;
15}
解析:
這題對(duì)算法是有要求的,如果沒有要求我們完全可以把鏈表全部斷開,然后再根據(jù)奇偶性再重新連接。這題沒什么難度,odd相當(dāng)于一個(gè)由奇數(shù)節(jié)點(diǎn)組成的鏈表的結(jié)尾,even相當(dāng)于由偶數(shù)節(jié)點(diǎn)組成的鏈表的結(jié)尾,而evenHead就是由偶數(shù)節(jié)點(diǎn)組成的鏈表的頭,在第12行讓偶數(shù)節(jié)點(diǎn)組成的鏈表的頭連接到由奇數(shù)節(jié)點(diǎn)組成的鏈表的尾部,所以就達(dá)到了把原鏈表的奇數(shù)點(diǎn)和偶數(shù)點(diǎn)分別排在一起。
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應(yīng)用程序;2. 面向?qū)ο螅?. 分布性,Java是面向網(wǎng)絡(luò)的語言;4. 魯棒性,java提供自動(dòng)垃圾收集來進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤。;5. 安全性,用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵。6. 體系結(jié)構(gòu)中立,只要安裝了Java運(yùn)行時(shí)系統(tǒng),就可在任意處理器上運(yùn)行。7. 可移植性,Java可以方便地移植到網(wǎng)絡(luò)上的不同機(jī)器。8.解釋執(zhí)行,Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。
以上是“如何使用java實(shí)現(xiàn)奇偶鏈表”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!