题解 | #反转链表|递归|Python#

反转链表

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

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#
class Solution:
    
    def ReverseList(self , head: ListNode) -> ListNode:
        if head == None:
            return head
        return self.reverseListHelp(head)[0]

    # 返回数组当前链表反转后得到的新链表的[头结点,尾节点]
    def reverseListHelp(self , head: ListNode) -> List:
        if head.next == None:
            return [head , head]
        
        # 获取下一个节点翻转后的[头结点,尾节点]
        headAndTail = self.reverseListHelp(head.next)
        # 将当前节点添加到尾结点之后
        headAndTail[1].next = head
        # 当前节点已经成为了尾结点,后面再应该有节点
        head.next = None
        # 返回数组当前链表反转后得到的新链表的[头结点,尾节点]
        return [headAndTail[0] , head]

#刷题#
一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

点赞 评论 收藏
分享
01-14 12:08
门头沟学院 Java
神哥了不得:(非引流)1.既然发出来了简历,就稍微提一点点小建议,确实简历很不错了,练手项目可以换一些质量高的,工作内容,可以加上一些量化指标,比如第一条系统响应速度由多少变成多少,减少了百分之多少,第4条就很不错。2.广投,年前实习招募比较少了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务