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 requests.post带head和body的实例

如下所示: # coding = utf-8 import requests import json host = "http://47.XX.XX.XX:30000" endpo...

Python之Web框架Django项目搭建全过程

Python之Web框架Django项目搭建全过程

Python之Web框架Django项目搭建全过程 IDE说明: Win7系统 Python:3.5 Django:1.10 Pymysql:0.7.10 Mys...

Django时区详解

引言 相信使用Django的各位开发者在存储时间的时候经常会遇到这样子的错误: RuntimeWarning: DateTimeField received a naive date...

Tensorflow 自定义loss的情况下初始化部分变量方式

一般情况下,tensorflow里面变量初始化过程为: #variables ........... #..................... init = tf....

python基于三阶贝塞尔曲线的数据平滑算法

python基于三阶贝塞尔曲线的数据平滑算法

前言 很多文章在谈及曲线平滑的时候,习惯使用拟合的概念,我认为这是不恰当的。平滑后的曲线,一定经过原始的数据点,而拟合曲线,则不一定要经过原始数据点。 一般而言,需要平滑的数据分为两种:...