zoukankan      html  css  js  c++  java
  • python中使用递归实现反转链表

       反转链表一般有两种实现方式,一种是循环,另外一种是递归,前几天做了一个作业,用到这东西了。

    这里就做个记录,方便以后温习。

      递归的方法:

      

    class Node:
            def __init__(self,init_data):
                    self.data = init_data
                    self.next = None
    
            def get_data(self):
                    return self.data
    
            def get_next(self):
                    return self.next
    
            def set_data(self,new_data):
                    self.data = new_data
    
            def set_next(self,new_next):
                    self.next = new_next
    
    lista = Node(99)
    listc = Node(49)
    listd = Node(39)
    liste = Node(29)
    listf = Node(9)
    lista.next = listc
    listc.next = listd
    listd.next = liste
    
    def recurse(mylist,newlist):
            if mylist is None:
                    return;
            if mylist.next is None:
                    newlist = mylist
            else:
                    newlist = recurse(mylist.next,newlist)
                    mylist.next.next = mylist
                    mylist.next = None
    
            return newlist
    
    listg = None
    plist = recurse(lista,listg)
    def list_print(listd):
            while listd is not None:
                    print listd.data
                    listd = listd.next
    
    print "elist is:"
    list_print(liste)
    print "reverse list is:"
    list_print(plist)

      运行结果:

    elist is:
    29
    39
    49
    99
    reverse list is:
    29
    39
    49
    99
  • 相关阅读:
    C++ Primer 第五版-1.1
    C++ Primer 第五版笔记-1.0
    TouchID
    正则表达式
    duplicate symbol 错误
    第三方登录
    AFNetWorking
    IOS---通知
    左右点击--日期增减
    Xcode相关设置
  • 原文地址:https://www.cnblogs.com/dylancao/p/8109127.html
Copyright © 2011-2022 走看看