您好,登錄后才能下訂單哦!
這篇“如何使用java實現奇偶鏈表”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“如何使用java實現奇偶鏈表”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。
給定一個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這里的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。
請嘗試使用原地算法完成。你的算法的空間復雜度應為 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
說明:
應當保持奇數節點和偶數節點的相對順序。
鏈表的第一個節點視為奇數節點,第二個節點視為偶數節點,以此類推。
答案:
1public ListNode oddEvenList(ListNode head) {
2 if (head != null) {
3 ListNode odd = head;//奇數節點
4 ListNode even = head.next;//偶數節點
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}
解析:
這題對算法是有要求的,如果沒有要求我們完全可以把鏈表全部斷開,然后再根據奇偶性再重新連接。這題沒什么難度,odd相當于一個由奇數節點組成的鏈表的結尾,even相當于由偶數節點組成的鏈表的結尾,而evenHead就是由偶數節點組成的鏈表的頭,在第12行讓偶數節點組成的鏈表的頭連接到由奇數節點組成的鏈表的尾部,所以就達到了把原鏈表的奇數點和偶數點分別排在一起。
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。
以上是“如何使用java實現奇偶鏈表”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。