牛客题霸 NC2 重排链表
Posted Starzkg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客题霸 NC2 重排链表相关的知识,希望对你有一定的参考价值。
https://www.nowcoder.com/practice/3d281dc0b3704347846a110bf561ef6b
解决方案
Go
func reorderList(head *ListNode) {
// write code here
solve(0, head)
}
func solve(i int, head *ListNode) (rj int, rtail *ListNode) {
if head == nil {
return -1, nil
}
j, tail := solve(i+1, head.Next)
rj = j + 1
if i == j {
rtail = tail.Next
tail.Next = nil
head.Next = tail
} else if i == j+1 {
head.Next = nil
rtail = tail
} else if i < j {
rtail = tail.Next
tail.Next = head.Next
head.Next = tail
} else {
rtail = head
}
return
}
参考文章
以上是关于牛客题霸 NC2 重排链表的主要内容,如果未能解决你的问题,请参考以下文章