码迷,mamicode.com
首页 > 编程语言 > 详细

单链表的反转 python实现实例

时间:2018-12-09 20:00:41      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:技术   else   一个   单链表反转   反转   实例   链表   color   style   

单链表反转实现

1、递归实现

  根据递归,递归到最后一个节点(条件为head3为非空,其下一个指向为空),将其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

注释:原来链表为{1,2,3,4}

head指向为1,pHead1=head.next   pHead2=pHead1.next    pHead3=pHead2.next

a、递归最后实现newhead=phead3

b、回到上次递归的结束下方

2、循环实现

    def ReverseList(self, pHead):
        if pHead is None or pHead.next is None:
            return pHead
        pre = None
        cur = pHead
        h = pHead
        while cur:
            h = cur
            tmp = cur.next
            cur.next = pre
            pre = cur
            cur = tmp
        return h

 

单链表的反转 python实现实例

标签:技术   else   一个   单链表反转   反转   实例   链表   color   style   

原文地址:https://www.cnblogs.com/6530265oule/p/10092534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!