反转链表

反转链表_牛客网

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=13&tqId=11168&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述
输入一个链表,反转链表后,输出新链表的表头。

非递归方法AC代码:

def ReverseList(self, pHead):
    # write code here
    prev = None
    while pHead:
        curr = pHead
        pHead = pHead.next
        curr.next = prev
        prev = curr
    return prev

递归方法:

def ReverseList(self, pHead, prev=None):
    if not pHead:
        return prev
    n = pHead.next
    pHead.next = prev
    return self.ReverseList(n, pHead)

还在思考怎么让递归调用方法中函数只传入一个参数。

全部评论
请问非递归方法中为什么把pHead=pHead.next 写到curr.next = prev下边就不行了,这是python的什么机制吗,求解释
点赞 回复 分享
发布于 2019-09-24 19:01
self.ReverseList(pHead.next),再把最后的head置于反转好的链表后即可,即pHead.next.next=pHead;pHead.next=None;
点赞 回复 分享
发布于 2020-04-13 13:03

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
小谷围鸡肉卷阿姨:+1,腾子投完一动不动
点赞 评论 收藏
分享
8 收藏 评论
分享
牛客网
牛客企业服务