python 链表的反转

Posted sea-stream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 链表的反转相关的知识,希望对你有一定的参考价值。

 

code

#!/usr/bin/python
# -*- coding: utf-8 -*-

class ListNode: 
  def __init__(self,x): 
    self.val=x
    self.next=None

def recurse(head,newhead):  #递归,head为原链表的头结点,newhead为反转后链表的头结点 
  if head is None: 
    return 
  if head.next is None: 
    newhead=head
  else : 
    newhead=recurse(head.next,newhead)
    head.next.next=head
    head.next=None
  return newhead
   
head=ListNode(1)      #测试代码 
p1=ListNode(2)     # 建立链表1->2->3->4->None 
p2=ListNode(3)
p3=ListNode(4)

head.next=p1
p1.next=p2
p2.next=p3
newhead=None


p=recurse(head,newhead)    #输出链表4->3->2->1->None 

while p: 
  print p.val
  p=p.next

输出
4
3
2
1




参考: https://www.jb51.net/article/134706.htm
 

以上是关于python 链表的反转的主要内容,如果未能解决你的问题,请参考以下文章

单链表的反转 python实现实例

剑指offer反转链表python

反转链表(python3)

Python|反转链表问题解决方法

Leetcode刷题Python206.反转链表

Leetcode刷题Python92.反转链表II