重新排序
1、題目
2、解題1
申請空間解法
package main
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
*
* @param head ListNode類
* @return void
*/
func reorderList( head *ListNode ) {
// write code here
if head == nil{
return
}
var stk []*ListNode
var tmp *ListNode
tmp = head
for tmp != nil{
tmp2 := tmp.Next
tmp.Next = nil
stk = append(stk, tmp)
tmp = tmp2
}
i := len(stk)-1
j := 0
for j<i{
stk[j].Next = stk[i]
if j+1 == i{
break
}
stk[i].Next = stk[j+1]
i--
j++
}
head = stk[0]
return
}
3、解題2
不申請空間解法
package main
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
*
* @param head ListNode類
* @return void
*/
func reorderList( head *ListNode ) {
// write code here
if head == nil{
return
}
//獲取長度
nodeLen := 0
tmp := head
for tmp != nil{
nodeLen++
tmp = tmp.Next
}
//截斷
tmp = head
for i:= 0;i< (nodeLen-1)/2;i++{
tmp = tmp.Next
}
head1 := head
head2 := tmp.Next
tmp.Next = nil
//翻轉
var first *ListNode
var second *ListNode
var third *ListNode
first = nil
second = head2
for second != nil{
third = second.Next
second.Next = first
first = second
second = third
}
//合併
head2 = first
for head1 != nil && head2 != nil{
tmp = head1.Next
tmp2 := head2.Next
head1.Next = head2
head2.Next = tmp
head1 = tmp
head2 = tmp2
}
}
相關文章
- dhtmlxGantt如何重新排序任務教程HTML排序
- 如何在dhtmlxGantt網格中對任務進行排序和重新排序HTML排序
- (樹)根據排序陣列或者排序連結串列重新構建BST樹排序陣列
- 多維陣列按鍵名進行重新排序陣列排序
- 排序:氣泡排序&快速排序排序
- Wireshark網路分析例項集錦2.1.2隱藏、刪除、重新排序及編輯列排序
- 【排序】插入類排序—(折半)插入排序、希爾排序排序
- 排序:交換排序——氣泡排序法排序
- php插入排序,快速排序,歸併排序,堆排序PHP排序
- 排序演算法(氣泡排序,選擇排序,插入排序,希爾排序)排序演算法
- 排序(2)--選擇排序,歸併排序和基數排序排序
- 排序(1)--插入排序和交換排序排序
- 插入排序排序排序
- 排序之快速排序排序
- 排序——氣泡排序排序
- 排序之交換排序排序
- [排序] 歸併排序排序
- PHP 常見4種排序 氣泡排序、選擇排序、插入排序、快速排序PHP排序
- O(lgn)的三種排序,快速排序、歸併排序、堆排序排序
- 非交換排序-計數排序和桶排序排序
- 計數排序、桶排序和基數排序排序
- 查詢列表連結串列加排序 每次重新整理順序都不同是什麼情況?排序
- Python八大演算法的實現,插入排序、希爾排序、氣泡排序、快速排序、直接選擇排序、堆排序、歸併排序、基數排序。Python演算法排序
- 快速排序&&歸併排序排序
- 排序之氣泡排序排序
- 排序之選擇排序排序
- 排序之插入排序排序
- 計數排序vs基數排序vs桶排序排序
- (一)氣泡排序、選擇排序、插入排序排序
- 筆試之排序-直接插入排序、氣泡排序、快速排序筆試排序
- 圖形化排序演算法比較:快速排序、插入排序、選擇排序、氣泡排序排序演算法
- 深刻改變SEO行業:谷歌人工智慧演算法RankBrain對搜尋結果重新排序行業谷歌人工智慧演算法AI排序
- 【JS面試向】選擇排序、桶排序、氣泡排序和快速排序簡介JS面試排序
- 排序演算法 - 氣泡排序和選擇排序排序演算法
- 排序演算法 - 快速插入排序和希爾排序排序演算法
- 氣泡排序、歸併排序與快速排序比較排序
- 四、歸併排序 && 快速排序排序
- 選擇排序和快速排序排序