牛客题霸 NC21 链表内指定区间反转

Posted Starzkg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客题霸 NC21 链表内指定区间反转相关的知识,希望对你有一定的参考价值。

https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

解决方案

Go

func reverseBetween(head *ListNode, m int, n int) *ListNode {
	// write code here
	return solve(head, m, n, 1, nil, head)
}

func solve(head *ListNode, m int, n int, index int, pre *ListNode, h *ListNode) *ListNode {
	if index < m {
		head.Next = solve(head.Next, m, n, index+1, head, head.Next)
		return head
	}
	if index >= m && index <= n {
		node := head.Next
		head.Next = pre
		return solve(node, m, n, index+1, head, h)
	}
	h.Next = head
	return pre
}

参考文章

以上是关于牛客题霸 NC21 链表内指定区间反转的主要内容,如果未能解决你的问题,请参考以下文章

链表内指定区间反转(NC21/考察次数Top55/难度中等)

牛客题霸 NC23 划分链表

牛客题霸 NC2 重排链表

牛客题霸 NC3 链表中环的入口结点

牛客题霸 NC4 判断链表中是否有环

牛客题霸 NC25 删除有序链表中重复的元素-I