题解 | 链表内指定区间反转

链表内指定区间反转

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
}

无所吊味

全部评论

相关推荐

10-02 19:29
已编辑
浙江科技大学 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务