本文实例讲述了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
反转
单链表
算法