您的位置:首页 > 编程语言 > Python开发

《苦练算法》-剑指Offer- 十五、 反转链表 -python编写

2018-02-04 16:08 381 查看
题目描述

输入一个链表,反转链表后,输出链表的所有元素。

题目分析

顾名思义就是将整个链表倒过来的操作

首先要考虑链表为NULL或是只有一个节点的情形,不需要操作直接返回当年节点即可

其他方式需要处理 核心处理代码如下:

nextNode = pHead.next # 指向下一个节点 其实这里就相当于做了一个缓存

pHead.next = preNode # 当前节点指向前一个的节点也就是倒转的核心

之后当前节点和前一个节点都向后移一位,相当于对下一个节点进行倒转操作

preNode = pHead # 之后前一个节点向后移一位

pHead = nextNode # 当前节点也向后移一位

循环操作

代码如下:

# -*- 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 pHead == None or pHead.next == None:
return pHead
preNode = None
while pHead:
nextNode = pHead.next
pHead.next = preNode
preNode = pHead
pHead = nextNode

return preNode
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐