python

超轻量级php框架startmvc

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

更新时间:2020-06-26 22:54:01 作者:startmvc
本文实例讲述了Python3实现的反转单链表算法。分享给大家供大家参考,具体如下:反转一

本文实例讲述了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

Python3 反转 单链表 算法