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

链表内指定区间反转

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

package main
import "fmt"
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @param m int整型 
 * @param n int整型 
 * @return ListNode类
*/
var stack [] *ListNode
func push(val *ListNode){
    stack =append(stack,val)
}
func reverse(start int,end int){
    for i,j:=start,end;i<j;i,j=i+1,j-1{
        stack[i],stack[j]=stack[j],stack[i]
    }
}
func reverseBetween( head *ListNode ,  m int ,  n int ) *ListNode {
    // write code here
    if(head == nil || head.Next == nil){
        return head
    }
    for head != nil{
        push(head)
        head=head.Next
    }
    reverse(m-1,n-1)
    newHead:=&ListNode{}
    resHead:=newHead
    for i:=0;i<len(stack);i++{
        newHead.Next = &ListNode{Val: stack[i].Val}
        newHead=newHead.Next
        fmt.Println(stack[i])
    }
    
    return resHead.Next
}

全部评论

相关推荐

我的人生算是废了,23届裸辞空档一年,存款只能坚持几个月了,找不到像样的工作了,人生何去何从。
梦想是成为七海千秋:这大环境下为什么要裸辞呀,风险真的挺大的,而且社招的话23届没有太多的竞争力,不过既然已经裸辞了就不要焦虑慢慢找。
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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