Python3实现的反转单链表算法示例

yipeiwu_com6年前Python基础

本文实例讲述了Python3实现的反转单链表算法。分享给大家供大家参考,具体如下:

反转一个单链表。

方案一:迭代

# Definition for singly-linked list.
# class ListNode:
#   def __init__(self, x):
#     self.val = x
#     self.next = None
class Solution:
  def reverseList(self, head):
    """
    :type head: ListNode
    :rtype: ListNode
    """
    cur, pre = head, None
    while cur:
      cur.next, pre, cur = pre, cur, cur.next
    return 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
    if not pHead or not pHead.next:
      return pHead
    else:
      newHead = self.ReverseList(pHead.next)
      pHead.next.next=pHead
      pHead.next=None
      return newHead

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python自动化导出zabbix数据并发邮件脚本

Python自动化导出zabbix数据并发邮件脚本

Zabbix没有报表导出的功能,于是通过编写脚本导出zabbix数据并发邮件。效果如下: 下面是脚本,可根据自己的具体情况修改: #!/usr/bin/python` `#codi...

Python中property属性实例解析

本文主要讲述的是对Python中property属性(特性)的理解,具体如下。 定义及作用: 在property类中,有三个成员方法和三个装饰器函数。 三个成员方法分别是:fget、f...

python3调用R的示例代码

由于工作需要,在做最优分箱的时候,始终写不出来高效的代码,所以就找到了R语言中的最优分箱的包,这个时候考虑到了在python中调用R语言,完美结合。在国内的中文网站搜了半天,搭建环境的时...

Python合并两个字典的常用方法与效率比较

本文实例讲述了Python合并两个字典的常用方法与效率比较。分享给大家供大家参考。具体分析如下: 下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试 #!/usr/bi...

Python实现字符串匹配的KMP算法

kmp算法 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。...