《苦练算法》-剑指Offer- 十五、 反转链表 -python编写
2018-02-04 16:08
381 查看
题目描述
输入一个链表,反转链表后,输出链表的所有元素。
题目分析
顾名思义就是将整个链表倒过来的操作
首先要考虑链表为NULL或是只有一个节点的情形,不需要操作直接返回当年节点即可
其他方式需要处理 核心处理代码如下:
nextNode = pHead.next # 指向下一个节点 其实这里就相当于做了一个缓存
pHead.next = preNode # 当前节点指向前一个的节点也就是倒转的核心
之后当前节点和前一个节点都向后移一位,相当于对下一个节点进行倒转操作
preNode = pHead # 之后前一个节点向后移一位
pHead = nextNode # 当前节点也向后移一位
循环操作
代码如下:
输入一个链表,反转链表后,输出链表的所有元素。
题目分析
顾名思义就是将整个链表倒过来的操作
首先要考虑链表为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
相关文章推荐
- 《苦练算法》-剑指Offer- 二十六、二叉搜索树与双向链表 -python编写
- 《苦练算法》-剑指Offer- 二十五、复杂链表的复制 -python编写
- 《苦练算法》-剑指Offer- 三、 从尾到头打印链表 -python编写
- 《苦练算法》-剑指Offer- 十四、 链表中倒数第k个结点 -python/java编写
- 《苦练算法》-剑指Offer- 二十九、最小的k个数-python编写
- 《苦练算法》-剑指Offer- 三十、最小的k个数-python编写
- 《苦练算法》-剑指Offer- 五、 用两个栈实现队列 -python编写
- 《苦练算法》-剑指Offer- 二十七、字符串的排序-python编写
- 《苦练算法》-剑指Offer- 四、 重建二叉树 -python编写
- 《苦练算法》-剑指Offer- 十九、顺时针打印矩阵 -python编写
- 《苦练算法》-剑指Offer- 二十三、二叉搜索树的后序遍历序列 -python编写
- 反转链表[剑指offer]之python实现
- 《苦练算法》-剑指Offer- 二十四、二叉树中和为某一值得路径 -python编写
- 《苦练算法》-剑指Offer- 二十、顺时针打印矩阵 -python编写
- 《苦练算法》-剑指Offer- 九、 变态跳台阶 -python编写
- 《苦练算法》-剑指Offer- 十一、 二进制中1的个数 -python/java编写
- 《苦练算法》-剑指Offer- 十三、 调整数组顺序使奇数位于偶数前面 -python编写
- 《苦练算法》-剑指Offer- 十七、树的子结构 -python编写
- 《苦练算法》-剑指Offer- 七、 斐波那契数列 -python编写
- 《苦练算法》-剑指Offer- 十、 矩形覆盖 -python编写