题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

go递归
1→2→3→4→5
last=递归(2,3,4,5)后为:1→ last←2←3←4←5

head.next.next(head.next为2,2的next变为1)=head
head.next=nil(1反转后为最后一个,指向空)

停止条件 base case head

next=nil
func ReverseList( pHead *ListNode ) *ListNode {
    // write code here
    if pHead==nil{
        return nil
    }
    if pHead.Next==nil{
        return pHead
    }
    var last *ListNode
    last=ReverseList(pHead.Next)
    pHead.Next.Next=pHead
    pHead.Next=nil
    return last

}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务