剑指offer 15.反转链表

反转链表

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

15. 反转链表

题目描述


输入一个链表,反转链表后,输出新链表的表头。
思路


使用三个指针,分别指向当前遍历到的结点、它的前一个结点以及后一个结点。当前节点不为空时进行遍历:
当前节点的next = 前一个节点lastNode(进行前后翻转)
前一个节点(lastNode) = 当前节点(往后走一格)
当前节点 = 当前节点的next(往后走一格)
到最后当前节点为空,链表的首节点为lastNode
代码实现

# -*- 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
        if not pHead or not pHead.next:
            return pHead
        lastNode = None
        while pHead:
            temp  = pHead.next
            pHead.next = lastNode 
            lastNode = pHead
            pHead = temp
        return lastNode
全部评论

相关推荐

10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
LZStarV:冲就好了,就算真的是字节也冲,面评脏了大不了等三四个月就淡了,而且等到那个时候实力进步了选择还多,何必拘泥于字节
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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