leetcode [python] 【206】Reverse Linked List
2016-03-30 16:22
711 查看
1 设置两个指针,记录当前结点和上一结点:
2 设置一个中间结点,存储每一步结点的上一个结点地址:
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def reverseList(self, head): """ :type head: ListNode :rtype: ListNode """ if head == None: return head p = head n = head.next p.next = None while n: t = n.next n.next = p p = n n = t return p
2 设置一个中间结点,存储每一步结点的上一个结点地址:
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def reverseList(self, head): """ :type head: ListNode :rtype: ListNode """ tmp = ListNode(0) while head: n = head.next head.next = tmp.next tmp.next = head head = n return head如果用递归的方式:
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def reverseList(self, head): """ :type head: ListNode :rtype: ListNode """ return self.reverseNode(head, None) def reverseNode(self, head, before): if head == None: return before n = head.next head.next = before return self.reverseNode(n, head)
相关文章推荐
- 《Python核心编程》第九章:文件和输入输出
- 『Python』Python 调用 ZoomEye API 批量获取目标网站IP
- Python Class之间函数的调用关系
- 《Python核心编程》第八章:条件和循环
- 关于tornado的国际化遇到的问题记录
- python 反射器
- A Byte of Python 笔记(5)函数:定义、形参、局部变量、默认参数、关键参数
- python备忘录
- yaml在python上的应用
- 《Python核心编程》第七章:映射和集合类型
- 数据挖掘 关联规则的FP-growth-tree(FP增长树)的python实现(一)
- python多线程join方法导致不能接收信号
- python安装扩展”unable to find vcvarsall.bat“的解决办法
- 《Python核心编程》第六章:序列、字符串、列表和元组
- python 学习 第一课
- python 使用微信远程控制电脑
- leetcode-03-Longest Substring Without Repeating Characters-python
- python正则表达式详解
- 使用pythonwin设置windows的桌面背景
- python文件操作