题解 | #反转链表#

反转链表

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

}
全部评论

相关推荐

投递顺丰集团等公司8个岗位
点赞 评论 收藏
分享
2024-12-16 21:59
东北大学 Java
水杉1:我评估了仨月了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务