Files
practice/pkg/reorder_list/main.go
2026-01-18 14:15:59 -05:00

35 lines
458 B
Go

package reorderlist
type ListNode struct {
Val int
Next *ListNode
}
func ReorderList(head *ListNode) {
nodes := []*ListNode{}
for head != nil {
nodes = append(nodes, head)
head = head.Next
}
start := 0
end := len(nodes) - 1
for {
if start == end {
nodes[start].Next = nil
return
}
nodes[start].Next = nodes[end]
start++
if start == end {
nodes[end].Next = nil
return
}
nodes[end].Next = nodes[start]
end--
}
}