题解 | 链表内指定区间反转
链表内指定区间反转
https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c
package main
import (
. "nc_tools"
)
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @param m int整型
* @param n int整型
* @return ListNode类
*/
func reverseBetween( head *ListNode , m int , n int ) *ListNode {
// write code here
if(m==n||head==nil||head.Next==nil){
return head;
}
arr:=make([]int,0)
for head!=nil{
arr = append(arr,head.Val)
head=head.Next
}
arr1:=arr[m-1:n]
for i, j := 0, len(arr1)-1; i < j; i, j = i+1, j-1 {
arr1[i], arr1[j] = arr1[j], arr1[i]
}
arr0:=arr[0:m-1]
arr2:=arr[n:]
arr3:=append(arr0, arr1...)
arr3=append(arr3, arr2...)
head=new(ListNode)
p:=head
for i:=0;i<len(arr3);i++{
head.Val=arr3[i]
if(i==len(arr3)-1){
break
}
head.Next=new(ListNode)
head=head.Next
}
return p
}
无所吊味
小天才公司福利 1152人发布