24. 反转链表

反转链表

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

  • 为了避免链表断裂,这里需要三个指针,pnode指向某一节点,pre指向之前的一个节点,next指向后一个节点,反转的时候先记录next=pnode.next,然后让pnode指向pre,然后更新pnode和pre。
  • 需要注意的是什么时候反转结束以及只有一个节点或空链表的时候

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回ListNode
    def ReverseList(self, pHead):
        # write code here
        Reversedhead = None
        pNode = pHead
        pre = None
        while pNode:
            nextnode = pNode.next
            if not nextnode:
                Reversedhead = pNode
            pNode.next = pre
            pre = pNode
            pNode = nextnode
        return Reversedhead
全部评论

相关推荐

12-19 20:28
已编辑
门头沟学院 Java
美团履约 全栈工程师 (n+1)*15.5 其他
点赞 评论 收藏
分享
面了100年面试不知...:今年白菜这么多,冬天可以狂吃了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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